МГСталляциш
cmpolM
SaMU
Дмитрий ПАВЛОВ
Читатель может спросить: «А мне-то зачем инсталлятор? Программ своих я не писал, и пока не
собираюсь». В ответ на зто расскажу такую историю из жизни. Был у меня компакт с довольно-таки
старой игрой — Might and Magic VI, русская+английская версия. Да вот беда — русская версия
оказалась совсем неиграбельна, глючила постоянно. А английская худо-бедно игралась. Пока я не
вздумал патч поставить. Патч, как вы уже догадались, становиться упорно не хотел — не признавал
некоторые файлы. Эти файлы пришлось скачивать из Интернета. В итоге патч все-таки встал, все
было хорошо до поры до времени, пока из-за частого использования компакт не пришел в ужасающее
состояние, и я захотел сделать копию. Вот теперь представьте: если бы я скопировал компакт 1:1,
мне пришлось бы повторить всю последовательность операций: инсталляция русской версии —
инсталляция английской версии — замена нужных файлов — установка патча. Не слишком ли громоздкая
схема получается? Да наверняка и читателю знакома ситуация: программа вроде бы и работает, вот
только файл надо туда-то скопировать, в реестр то-то записать.
.. И так каждый раз при переустановке.
Нельзя ли избавится от этой рутинной работы? Вот если бы как-то сохранить, а потом снова повторить
уже готовый вариант.
..
Р еш ением этой за д а чи я и хочу поделиться с читателями: использоват ь инсталлятор N SIS.
И
ток, задумка проста — из уже «обработанной напиль-
ником» игры создоть ее инсталляцию, учитывающую
все проделанные изменения. При этом она должна:
•S
состоять из одного исполняемого ф ойло;
•S
обладать удобным интерфейсом, при этом не слиш-
ком броским и перенасыщенным звуковыми и видеоэф-
фектами (а вдруг во время инсталляции зайдет ш еф/пре-
подаватель? © );
й
в начале работы выводить сведения о том, что за
программный продукт инстоллируется;
■S
в диалогом режиме запраш ивать директорию , в ко-
торую будет проводиться инсталляция;
V
доть пользователю возможность выбрать лишь не-
обходимые ему компоненты;
■X
каким-либо образом визуализировать собственно
процесс инсталляции, который может быть достато чно
долгим (чтобы пользователю не было слишком скучно), и
обеспечить контроль над ним;
й 'и е
зосорять сам овольно реестр и системные папки
Windows лишними записями и файломи (я уже и не гово-
рю о программных модулях-ш пионах);
■S
обеспечить создание корректного деинсталлятора.
Такие требования обусловлены спецификой моей за-
дачи и личными пристрастиями, однако в целом они ха-
рактерны для больш инства инсталляторов. NSIS (Nullsoft
Scriptable Installation System) идеально подходит. М К уже
писал об этом великолепном продукте от не менее вели-
колепной компании Nullsoft (см. в М К , № 3 3 (256) «Гене-
ра то р -ин ста ллято р » — П етр © «Roxton» С Е М И Л Е Т О В ). С
тех пор NSIS вырос до релиза версии 2 .0 , взять его мож-
но на оф ициальном сойте разр а б о тчико в http://www.
nullsoft.com/tree/nsis. Среди новых возможностей — поддерж-
ка многоязычных инсталляторов, возможность представ-
ления компонентов инсталляции в виде дерева, система
plug-in'oB для тех, кому не хватает стандартных возмож-
ностей. Внешний вид созданного инсталлятора теперь не
ограничивается «фирменным» и легко узнаваемым стилем
NSIS старых версий, о зависит лишь от вкусов его созда-
теля. В чостности, в комплект поставки включен набор
файлов для реализации т.н. «соврем енного» интерфейса,
который весьма похож на привычные всем инсталляции от
InstallShield.
К уже существующим видам сжатия данных
(zip и bzip2)
добавлен
LZMA,
который, по утверждениям
разработчиков, обеспечивает в среднем на 2 0 % лучшее
сжатие, чем bzip2. Изменились также и «внутренности» —
добовлены десятки новых команд, изменены или вообще
убраны за ненадобностью некоторые старые, появилась
возможность использования пользовательских перемен-
ных в инсталляционных скриптах, переработана системе
управления страницами и т.д.
Преж де чем брсться за ро бо ту, давайте попытаемся
вспомнить, как проходит инсталляция (уверен, больш ин-
ство читателей нсблю дало этот процесс сотни раз). О бы ч-
но пользователю вначале предлагается ознакомиться и
согласиться с лицензионным соглашением, потом — вы-
брать тип и необходимые компоненты установки, потом —
папку установки, и, наконец, «откинуться на спинку крес-
л а » и наблю дать за процессом копирования. Каждая из
этих операций отобрсж ается последовательно в д и а ло -
говом окне инсталлятора, нозываемого в терминологии
N51$
страницей.
Не надо быть семи пядей во лб у, чтобы
понять, что типовой инсталлятор состоит из четырех стр а -
ниц:
показа лицензии, выбора опций инсталляции, выбо-
ра директории инсталляции
и
отображения прогресса ин-
сталляции.
Поэтом у при создании простейш его инстал-
лятора необходимо задать параметры для каждой из пре-
допределенны х страниц (впрочем, даже если пропустить
определение некоторых из них, они будут заменены зна-
чениями по умолчанию , и инсталлятор все равно будет
корректно работать), а также общ ие установки инстал-
лято р а , затем скомпилировать — и результат перед ва-
ми! Если же какая-нибудь из предустановленны х страниц
не нужна — проблем тоже нет. Исключаем соответствую -
щие установки, относящиеся к этой странице, — умный
компилятор сам понимает, что вы не хотите ее видеть в
готовом проекте, и пр о сто -на пр о сто выбрасывает стр а -
ницу из конечного исполняемого ф айло. Если вы хотите
соорудить инстоллятор с бо-ольш ой претензией на о р и -
гинальность © , можете добавить свою, пользовательскую,
страницу — это тоже несложно (хлопот, провда, будет
чуть больше). В целом, создовать инсталляции с помощью
N51$ необычайно легко — больш ая часть работы уже вы-
полнена, и для 9 0 % проектов костяк уже готов.
С о страницоми, кажется, разобрались. Н о как объяс-
нить компилятору, что бывает несколько варионтов уста-
новки? Тут тоже все просто. Для обеспечения гибкости и
управляемости процесса инсталляции в
применяется
механизм секций.
Секция, в терминах N515, — это целост-
ная, неделимая группа операций, производимых инсталля-
тором , таких как копировоние файлов, создание и мани-
пулирование ключами реестра и т.д. Секций может быть
и несколько, причем они могут быть скомбинированы еще
№39/314
27
сентября -04 октября 2004
предыдущая страница 33 Мой Компьютер 2004 39 читать онлайн следующая страница 35 Мой Компьютер 2004 39 читать онлайн Домой Выключить/включить текст