Иван Коробко
Управляем инсталляторами
В настоящее время используется несколько основных инсталляторов для установки программного обеспечения. Очень важным вопросом является автоматизация процесса установки приложений.
На сегодняшний день существует множество инсталляторов. Для реализации автоматической установки программ их запускают с различными параметрами, иногда параметры установки описывают в файле ответов. Рассмотрим наиболее часто используемые из них, сначала описав возможности, касающиеся автоматического управления инсталляторами, а затем примеры их использования:
- Windows Installer
- InnoSetup
- Nullsoft Scriptable Install System (NSIS)
- Wise Installer
Windows Installer
Windows Installer – это сервис установки и конфигурирования программных продуктов, который входит в состав ОС (внешний вид см. на рис. 1). Также он может устанавливаться с пакетами обновлений операционной системы или в качестве отдельного дистрибутива.
Рисунок 1. Внешний вид программы, использующий Windows Installer
Некоторые версии Windows Installer и Windows несовместимы. Это касается Windows 9x и Windows 2k. Ниже приведена таблица, с помощью которой можно определить, какую версию Windows Installer и где можно устанавливать (см. таблицу 1). В настоящее время используется Windows Installer 3.1, который можно загрузить с сайта разработчика как hotfix: http://support.microsoft.com/?id=893803.
Таблица 1. Версии Windows Installer
Название продукта
|
Версия продукта
|
Описание
|
Windows Installer 1.0
|
1.00.5104.0
|
Интегрирован в Office2000, дистрибутив
|
Windows Installer 1.1
|
1.10.1029.0
|
Интегрирован в Windows 2000
|
1.10.1029.1
|
Дистрибутив
|
Windows Installer 1.11
|
1.11.1314.0
|
Интегрирован в Windows 2000 SP1
|
1.11.2405.0
|
Интегрирован в Windows 2000 SP2
|
Windows Installer 1.2
|
1.20.1410.0
|
Интегрирован в Windows Me
|
1.20.1827.1
|
Дистрибутив
|
Windows Installer 2.0
|
2.0.2600.0
|
Интегрирован в Windows XP
|
2.0.2600.1
|
Интегрирован в Windows 2000 SP3
|
2.0.2600.1183
|
Интегрирован в Windows 2000 SP4
|
2.0.2600.2
|
Дистрибутив
|
2.0.2600.1106
|
Интегрирован в Windows XP SP1
|
2.0.3754.0, 2.0.3790.0
|
Интегрирован в с семейством Windows Server 2003
|
Windows Installer 3.0
|
3.0.3790.2180
|
Интегрирован в Windows XP SP2, дистрибутив
|
Windows Installer 3.1
|
3.1.4000.1823
|
Дистрибутив
|
3.1.4000.1830
|
Интегрирован в с семейством Windows Server 2003 SP1
|
3.1.4000.2435
|
Дистрибутив
|
Для инициализации процесса установки используют команду:
WindowsInstaller- -x86.exe []
Параметры запуска приведены в таблице 2.
Таблица 2. Параметры запуска hotfix
Параметр
|
Описание
|
/norestart
|
Не перезагружать компьютер после установки обновления
|
/quiet
|
Включение «тихого» режима. Во время установки программа не задает никаких вопросов
|
/help
|
Вызов справки, содержащей ключи запуска и их описание
|
На каждом компьютере, использующем Windows Installer, хранится единая база данных с информацией о каждом установленном с помощью этой технологии приложении. Она включает файлы, записи в реестре и компоненты. При удалении приложения с машины Installer проверяет базу данных, чтобы удостовериться в том, что не будут удалены файлы, ключи реестра и компоненты, от которых зависят другие приложения. Таким образом, удаление приложения становится практически безопасным для других программ, имеющихся на компьютере.
Использование технологии Windows Installer дает пользователям следующие преимущества:
- Более простая и быстрая установка программного обеспечения.
- Возможность установки по требованию. Информация о неустановленных компонентах приложения хранится в одном месте, и при обновлении конфигурации программы нет необходимости переустанавливать все компоненты.
- Самовосстановление программ. Хранение инсталляционной информации в одном месте позволяет приложению самовосстанавливаться. Неправильно работающее приложение может проверить инсталляционные данные, определить, какие файлы повреждены или отсутствуют, а затем восстановить их.
- Возможности отката. Windows Installer позволяет отменять любые изменения в конфигурации как устанавливаемого продукта, так и операционной системы. Это делает установку программ, поддерживающих технологию Windows Installer, намного более безопасным и предсказуемым занятием, чем каких-либо других.
Благодаря перечисленным преимуществам пользователи теряют меньше времени на удаление и переустановку приложений, а также избавляются от необходимости исправлять непонятные и трудно диагностируемые ошибки в конфигурации приложения.
Взгляд изнутри: файл Msiexec.exe
Windows Installer включает в себя множество файлов, среди которых присутствует msiexec.exe. Этот файл – не самый важный компонент в Windows Installer. Всю основную работу выполняет динамически подключаемая библиотека – msi.dll. А msiexec.exe служит оболочкой msi.dll, позволяющей:
"%SystemRoot%\System32\msiexec.exe" /i "your_filename.msi"
Параметры командной строки для Msiexec
Параметры командной строки, которые понимает msiexec.exe, приведены в таблице 3.
Таблица 3. Параметры командной строки msiexec.exe
Опция
|
Параметры
|
Значение
|
/I
|
Код пакета / продукта
|
Установить или конфигурировать приложение
|
/f
|
[p|o|e|d|c|a|u|m|s|v]Код пакета / продукта
|
Восстановить приложение. Если задана эта опция, msiexec игнорирует значения свойств, заданные
в командной строке. Список по умолчанию для данной опции «pecms».
p – переустановить, только если файл отсутствует;
o – переустановить, если файл отсутствует или установлена более старая версия;
e – переустановить, если файл отсутствует или установлена такая же либо более старая версия;
d – переустановить, если файл отсутствует или установлена другая версия;
c – переустановить, если файл отсутствует или его сохраненная контрольная сумма не соответствует вычисленному значению;
a – переустановить все файлы;
u – перезаписать все необходимые специфичные для пользователя ключи реестра;
m – перезаписать все необходимые специфичные для машины ключи реестра;
s – перезаписать все существующие ярлыки;
v – запустить с исходного носителя и заново кэшировать локальный пакет
|
/a
|
Пакет
|
Опция Административной установки. Установить продукт в сети
|
/x
|
Код пакета / продукта
|
Деинсталлировать продукт
|
/j
|
[u|m]Пакетили[u|m]Пакет /g Идентификатор языка
|
Опубликовать продукт. Если задана эта опция, msiexec игнорирует значения свойств, заданные
в командной строке.
u – опубликовать для текущего пользователя;
m – опубликовать для всех пользователей компьютера;
g – идентификатор языка
|
/q
|
n|b|r|f
|
Задать уровень пользовательского интерфейса /q.
qn – отсутствие интерфейса, в этом случае не показывается никаких окон и не задается никаких вопросов; данный режим очень удобен для автоматической инсталляции ПО;
qb – уровень базового пользовательского интерфейса;
qr – уровень сокращенного пользовательского интерфейса;
qf – уровень полного пользовательского интерфейса
|
Полный список параметров смотрите на сайте Microsoft.
Использование Windows Installer на примере Microsoft Office
В настоящее время существует как минимум два способа автоматической установки Microsoft Office.
- Автоматическая установка с настройками по умолчанию. Процесс установки инициализируется следующей командой:
Pro11.msi /qb или Setup.exe /qb
- Автоматическая установка с использованием файла ответов с расширением MST, который создается с помощью соответствующего мастера из набора Resource Kit For Microsoft Office 2003. Установка осуществляется с помощью следующей команды:
Pro11.msi Transforms=FileName.mst /qb
или
Setup.exe Transforms=FileName.mst /qb
Рассмотрим второй способ установки более подробно.
Подготовка дистрибутива Office
Чтобы во время автоматической установки не запрашивался серийный номер, необходимо создать административную установку (Setup /a), которая хранит в себе такие важные параметры, как серийный номер Office; название организации, на которую зарегистрирован продукт.
Создание административной установки
Создание административной установки необходимо для реализации автоматической установки Microsoft Office и возможности интегрировать пакеты исправлений (SP) и обновления (updates) в дистрибутив.
По своей сути создание административной установки является установкой Microsoft Office в специальном режиме, который инициализируется командой:
Setup /a
В процессе установки Office будет запрошен серийный номер и название организации, на которую должен быть зарегистрирован продукт. Впоследствии при установке Office с этого дистрибутива серийный номер не будет запрашиваться.
Интеграция пакета исправлений и обновлений в Office
Перед интеграцией в Office, дистрибутив пакета исправлений, скопированный с сайта Microsoft, необходимо распаковать, выполнив команду:
Office2003SP1-KB842532-fullfile-enu.exe /q /c /t:С:\Office2003\SP1
где С:\Office2003\SP1 – путь, куда будет распаковано содержимое архива.
Интеграция в дистрибутив осуществляется с помощью двух команд:
MsiExec /p C:\Office2003\SP1\MainSp1f.msp /a C:\Office2003\Office\Pro11.msi ShortFileNames=True /qb
MsiExec /p C:\Office2003\SP1\Owc11Sp1ff.msp /a C:\Office2003\Office\OWC11.msi ShortFileNames=True /qb
где:
- C:\Office2003\SP1\ – путь к распакованной версии SP;
- C:\Office2003\Office\ – путь к дистрибутиву Microsoft Office 2003.
Интеграция обновлений осуществляется по такому же сценарию: сначала необходимо скопировать обновления с сайта Microsoft на жесткий диск, затем распаковать их и интегрировать в дистрибутив Office 2003.
Стоит отметить, что имена файлов обновлений строятся по следующему принципу:
XXX_KB######_YYY_ZZZ.exe
где:
- XXX – версия офиса, для которой предназначено обновление;
- KB###### – номер статьи Microsoft Knowledge Base, в которой приведен список исправлений;
- YYY – тип версии;
- ZZZ – языковая принадлежность.
Итак, для Office 2003 файлы обновлений строятся по следующему шаблону:
Office2003_KB######_FullFile_Enu.exe
Создание файла ответов MST
Файл ответа для Microsoft Office можно создать с помощью мастера Custom Installation Wizard, входящего в набор Resource Kit соответствующей версии.
Запустив мастер Custom Installation Wizard, необходимо создать новый MST-файл.
Команда для установки Office в автоматическом режиме будет следующей:
C:InstallOfficesetup.exe transforms=C:InstallOfficeanswer.mst /qb- /noreboot
Использование Windows Installer на примере Microsoft IE
20 марта 2006 года вышла очередная версия Microsoft Internet Explorer (IE Beta 2 7.0.5335.5), которая работает нестабильно. Достаточно часто возникает ситуация, когда не удается загрузить из сети какой-либо файл, хотя с помощью IE 6.x это можно сделать без проблем. При попытке удалить программу в соответствии с рекомендациями разработчика, после перезагрузки программа самовосстанавливается.
При попытке установить предыдущую версию IE мастер установки, естественно, сообщает о невозможности, т.к. уже установлена более новая версия программы. Одним из решений проблемы является установка IE6 без проверки версии c помощью команды:
ie6setup.exe /Q:A /C:"ie6wzd /S:""#e"" /Q:C /R:N /V:I"
Inno Setup
Inno Setup – бесплатно распространяемый инсталлятор для Windows-приложений, разрабатываемый с 1997 года. Последнюю версию 5.1.6 (18 ноября 2005 г.) можно скачать по адресу: http://www.jrsoftware.org/download.php/is.exe.
Определить инсталлятор InnoSetup можно очень просто. Во-первых, слева приведена одна из двух картинок, а во-вторых, на самом первом экране в меню присутствует команда «File | About» (см. рис. 2).
Рисунок 2. Внешний вид Inno Installer
Для автоматизации процесса установки ПО рекомендуется использовать команду:
setup.exe /SILENT
Полный список ключей приведен в таблице 4.
Таблица 4. Список параметров запуска инсталляторов Inno Setup
Параметр
|
Описание
|
/SILENT, /VERYSILENT
|
Подавление вывода диалоговых окон
|
/NOCANCEL
|
Скрыть кнопку отмены процесса установки
|
/NORESTART
|
Управление перезагрузкой после завершения процесса установки
|
/LOADINF="filename"
|
Передача управления установкой конфигурационному файлу
|
/SAVEINF="filename"
|
Записать в конфигурационный файл сценарий установки
|
/LANG=language
|
Управление языковыми настройками. Если параметр указан,
сообщение о выборе языка не появляется
|
/DIR="x:dirname"
|
Путь установки ПО
|
/GROUP="folder name"
|
Название группы, в которой будут размещены ярлыки в папке
«Пуск | Программы»
|
/NOICONS
|
Не создавать папку с ярлыками в «Пуск | Программы»
|
/COMPONENTS
|
Использовать при установке набор по умолчанию
|
/SN
|
Указать серийный номер продукта
|
Инсталлятор поддерживает файлы ответов, которые имеют расширение ISS. После установки инсталлятора их можно найти в каталоге C:Program FilesInno Setup 5Examples.
Файл ответа можно сгенерировать к уже готовому продукту с помощью ключей, описанных в таблице. Синтаксис файла ответов подробно описан в файле-справке C:Program FilesInno Setup 5ISetup.hlp.
В комплекте установки инсталлятора в каталоге C:Program FilesInno Setup 5Languages находятся файлы с расширением ISL, позволяющие инсталлятору поддерживать несколько языков интерфейса.
Использование Inno Setup на практике
Рассмотрим использование инсталлятора Inno Setup на примере программ Nero Burning Room и WinRar.
Автоматическая установка Nero Burning Room
Установим и сразу же зарегистрируем программу, указав серийный номер во время инсталляции с помощью ключа SN:
c:\Install\Nero\Nero551054.exe /silent /noreboot/sn=xxxx-xxxx-xxxx-xxxx-xxxx-xxxx /write_sn
где:
- /silent – обеспечивает автоматический режим установки программы;
- /noreboot – не перезагружает рабочую станцию после установки программы;
- /sn=xxxx-xxxx-xxxx-xxxx-xxxx-xxxx – вместо xxxx-… указывается серийный номер продукта.
Автоматическая установка WinRar
Для реализации автоматической установки WinRar в качестве параметра необходимо указать ключ /s. В этом случае WinRar будет ассоциирован со всеми типами архивов, а также будет создана соответствующая группа в меню «Пуск»:
C:\Install\Wrar\Wrar340ru.exe /s
Если же использовать ключ /silent, то пользователю будет предложено, выбрать, какие из вышеперечисленных функций он хочет использовать.
Nullsoft Scriptable Install System (NSIS)
Как и предыдущий инсталлятор, NSIS (внешний вид см. на рис. 3) является бесплатным. С его помощью используются такие приложения как DIVX.
Рисунок 3. Внешний вид NSIS
Скачать NSIS 2.15 (4 марта 2006г) можно по адресу: http://prdownloads.sourceforge.net/nsis/nsis-2.15-setup.exe?download.
Инсталлятор NSIS используют такие приложения, как WinAmp, SoundForge, Emule, DivX. Скриншоты см. на http://nsis.sourceforge.net/Screenshots.
Инсталлятор поддерживает файлы ответов, которые имеют расширение NSI.
После установки инсталлятора их можно найти в каталоге C:\Program Files\NSIS\Examples.
Подробное описание скриптового языка можно найти в файле C:\Program Files\NSIS\NSIS.chm.
Инсталлятор поддерживает параметры запуска, указанные в таблице 5.
Таблица 5. Параметры запуска инсталлятора NSIS
Параметр
|
Описание
|
/NCRC
|
Отключение функции проверки контрольной суммы архива.
Работает, если в сценарии установки не используется функция CRCCheck
|
/S
|
Подавляет все диалоговые окна в процессе установки
|
/D
|
Задается каталог инсталляции продукта
|
Приведем несколько примеров использование инсталлятора:
installer.exe /NCRC
installer.exe /S
installer.exe /D=C:\Program Files\NSIS
installer.exe /NCRC /S /D=C:\Program Files\NSIS
Wise Installer
Этот инсталлятор является платным. Его бесплатную 30дневную версию можно скачать по адресу http://www.wise.com/dev_evaluations.asp, зарегистрировавшись на сайте. Внешний вид программы см. на рис. 4. Автоматическая установка осуществляется с помощью ключа /S.
Рисунок 4. WIZE Installer
Wize Installer используют такие программы как AdWare, AGraber. Приведем пример автоматической установки программы AdWare:
C:InstallWrarAdware.exe /s
Сравнение возможностей инсталляторов
Для быстрой автоматизации установки программ приведем таблицу сравнения инсталляторов (см. таблицу 6).
Таблица 6. Сравнение возможностей инсталляторов
Свойство
|
Инсталлятор
|
Название
|
Windows Installer
|
Inno Setup
|
NSIS
|
Поддержка файла ответов
|
+/–
(Некоторые программы, например, Microsoft Office, используют индивидуальный мастер создания файлов ответов, с помощью которого настраивается каталог установки, отмена перезагрузки после завершения процесса инсталляции и т. д.)
|
*.ISS
|
*.NSI
|
Импорт/экспорт параметров установки в файл
|
–
|
+
|
–
|
Управление перезагрузкой после окончания процесса установки
|
+/–
|
/NORESTART
|
–
|
Управление «тихим» режимом установки
|
/Q
|
/SILENT
|
/S
|
Языковой интерфейс
|
/X
|
/LANG
|
–
|
Директория инсталляции
|
+/–
|
/DIR
|
/D
|
Серийный номер продукта
|
/I
|
/SN
|
–
|
ПО, использующее инсталлятор
|
Ghost, MS Office, AcdSee и т. д.
|
Ahead Nero, WinRar
|
WinAmp, SoundForge, Emule, DivX
|
Пакетная установка ПО
Рассмотрев инсталляторы, необходимо несколько слов сказать о том, как реализовать установку нескольких программ в автоматическом режиме. Для этого рекомендуется использовать пакетную установку, реализованную, например, с помощью BAT-файла. Пользоваться же параллельной установкой не рекомендуется, поскольку некоторые инсталляторы, например Windows Installer, не могут работать параллельно. Для того чтобы процесс установки программ шел последовательно, необходимо строку установки предварять командой start /wait:
start /wait %systemdrive%\install\setup.exe /s
Некоторые инсталляторы, например, Inno Setup, пытаются запустить программу по окончании процесса установки. Если вы устанавливаете несколько программ подряд в «тихом» режиме, то это неудобно.
Решить проблему можно с помощью утилиты Taskkill, поставляющейся с операционной системой, следующим образом:
[Setup.bat]
start /wait %systemdrive%\install\filename.exe /SILENT /SP-
taskkill.exe /F /IM filename.exe
Заключение
Надеюсь, что полученные знания позволят читателю автоматизировать установку львиной доли программ и ускорить процесс восстановления рабочих станций в сети.
Ссылки:
- http://support.microsoft.com/?id=893803
- http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ru/library/ServerHelp/9361d377-9011-4e21-8011-db371fa220ba.mspx?mfr=true
- http://www.microsoft.com/windows/IE/ie7/ie7betaredirect.mspx
- http://www.jrsoftware.org/isinfo.php
- http://nsis.sourceforge.net/Main_Page
- http://www.wise.com/index.asp