Справочник по автоматической установе Windows XP




Глава 7-Zip


7-zip - бесплатный архиватор, распространяющийся по лицензии GNU LGPL. Если вы с ним не знакомы, то более подробную информацию вы найдете на сайте 7-zip. С его помощью можно создавать безключевые SFX, хотя процесс их создания несколько длиннее, чем у WinRAR.

Для начала нужно запаковать содержимое нашей директории в 7-zip архив. Сделать это можно через 7-zip файл-медеждер. Запустив его, мы переходим в директорию, в которой находится административная установка Adobe. В эту же директорию нужно положить файл StartX.exe (его назначение я объясню ниже). Выделяем все файлы

7-zip Main

и жмем Добавить

7-zip Parameters

Именуем архив по желанию (скажем, Adobe7.7z), выбираем формат 7-zip, максимальный уровень сжатия и жмем ОК. На выходе получаем файл Adobe7.7z, из которого нам предстоит сделать SFX.

Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие - он должен быть в кодировке UTF-8. В нашем случае он будет выглядеть так:

;!@Install@!UTF-8!

RunProgram="StartX.exe /WAIT \"msiexec /i Adobe7.msi /qn\""

;!@InstallEnd@!

Выглядит сложно, но сейчас все прояснится. Первая и последние строки просто обозначают начало и конец конфигурационного файла. Средняя строка - команда, которая будет выполнена после распаковки архива. Непосредственно команда заключается в кавычки и помещается после RunProgram=. Утилита StartX.exe

является эквивалентом консольной команды START и поддерживает такие же ключи. Ее наличие необходимо для установки MSI пакета, извлеченного из 7-zip SFX. Если попытаться сделать нечто вроде RunProgram="Adobe7.msi /qn", то запуск завершится ошибкой. Два обратных слэша (\) просто предваряют кавычки, находящиеся внутри команды.

Сохраняем конфигурационный файл с именем config.txt в ту же директорию, где Adobe7.7z, и переходим к завершающей стадии создания SFX.

Из инсталляционной директории 7-zip нужно взять SFX модуль 7zS.sfx и скопировать его к файлам Adobe7.7z и config.txt. Рекомендую сжать модуль утилитой UPX. Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой

upx --best 7zS.sfx

Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.

Теперь, когда в одной директории собраны все три файла (adobe7.7z, config.txt и 7zS.sfx), нужно из командной строки выполнить следующую команду

COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe

Через мгновение в директории появится файл adobe7.exe. Это и есть наш SFX. Его запуск инициирует распаковку архива во временную директорию, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании инсталляции.




Содержание  Назад  Вперед