Процесс создания программного продукта включает в себя несколько этапов. Одним из таких этапов является создание программы установки (инсталлятора) вашего программного обеспечения. Инсталлятор производит копирование файлов программного продукта на диск пользователя (или на сервер), при необходимости создает ярлыки, сохраняет настройки в реестре. При деинсталляции он (или, вернее, его часть, которая занимается деинсталляцией) должен удалить файлы программного продукта и, по возможности, оставленный в результате ее деятельности всевозможный "мусор" на машине пользователя.
Как правило, задача создания инсталлятора встает уже на этапе перевода проекта в бета- (или даже альфа-) тестирование.
Я не стану здесь делать обзор инсталляционных систем и давать им сравнительные характеристики, а просто расскажу о двух из них, проверенных на практике многими программистами и подходящими для малых и средних проектов (это утверждение условно и зависит от специфики каждого отдельного случая). Для кого-то названия этих продуктов покажутся незнакомыми, поскольку на слуху обычно инсталляционные системы, которыми делают дистрибутивы для крупных коммерческих продуктов, наподобие InstallShield. Обычно они с трудом подходят для создания дистрибутивов небольших систем, так как добавляют слишком много собственного кода в дистрибутив (порядка мегабайта). Примечательным фактом рассматриваемых инсталляционных систем является их бесплатная лицензия, хотя, конечно, они не являются единственными бесплатными генераторами инсталляций.
Inno Setup
Многим программистам на Delphi и C++ Builder знаком пакет компонентов Toolbar97, а также его преемник Toolbar2000 (они распространяются как shareware). Автор этих компонент - Джордан Расселл (Jordan Russell) - написал и инсталляционную систему Inno Setup и распространяет ее как бесплатную (но материальная поддержка приветствуется). В настоящее время доступна версия 3.0.6.
Inno Setup поддерживает все используемые 32-битные версии Windows (95, 98, 2000, XP, Me, NT 4.0), позволяет создавать как единый инсталлятор, так и с разбивкой по томам, создает инсталлятор в стандартном стиле 2000/XP.
Процесс установки управляется параметрами, которых в Inno Setup имеется большое количество. Скрипт инсталлятора представляет собой текстовый файл в структуре INI. При создании нового проекта инсталляции можно воспользоваться мастером (wizard), в результате работы которого будет получен работоспособный скрипт, который в простейших случаях может быть и итоговым. Есть несколько скриптов-примеров.
Ключевые группы параметров следующие: Setup (общие), Types (типы инсталляции - полная, компактная, выборочная), Components (компоненты для выбора в типах инсталляции), Tasks (дополнительные задачи), Dirs (создание дополнительных папок), Files (список копируемых файлов), Icons (создание ярлыков), INI (работа с ini-файлами), InstallDelete (удаление объектов файловой системы при инсталляции), Messages (надписи в диалоге инсталляции), LangOptions (языковые установки), Registry (работа с реестром), Run (запуск сторонних программ в процессе инсталляции), UninstallDelete (удаление объектов файловой системы при деинсталляции), UninstallRun (запуск сторонних программ в процессе деинсталляции).
Инсталлятор, созданный с помощью Inno Setup, выглядит стандартно и профессионально. Внешний вид можно варьировать, используя собственные файлы изображений. Возможна "бесшумная" инсталляция/деинсталляция - без показа окон и сообщений. К преимуществам Inno Setup также относится доступность исходных текстов (он написан на Delphi и может быть собран с помощью версий 2.0-5.0, как об этом написано на сайте автора), так что можно, в случае надобности, написать специальный инсталлятор. К недостаткам - то, что он добавляет достаточный вес к дистрибутиву (по сравнению с просто архивом ваших файлов) - около 200 kB, что для маленьких проектов является расточительством.
Inno Setup можно скачать с сайта автора www.jrsoftware.org.
Сам пакет не предоставляет интерфейса для визуального редактирования сценария установки, в вашем распоряжении есть только текстовый редактор с синтаксической подсветкой ключевых слов (этого бывает достаточно, когда есть опыт работы). Задачу визуального редактирования выполняют третьесторонние продукты, один из которых - ISTool - поддерживает работу с последней версией Inno Setup. Автором этого инструмента является Бъярнар Хенден (Bjornar Henden), находится он по адресу www.istool.org.
NSIS
Расшифровывается как Null Soft Installation System. Это инсталлятор, который используется в известном проигрывателе WinAMP. Он известен тем, что добавляет к собственно архиву программных файлов менее 40 kB кода (около 35 kB при использовании установок по умолчанию). При этом гарантируется возможность создания дистрибутивов размером до 500 Mb и даже теоретически до 2 Gb, если сборка идет под NT (вот вам и малые проекты!). Он также бесплатен и поставляется в исходных текстах. Написан на C++. Текущая релизная версия - 1.98.
NSIS можно найти на nsis.sourceforge.net.
Внешний вид инсталлятора, созданного NSIS, отличается от стандартного стиля 2000/XP, так что к этому нужно быть готовым.
В нем также возможна "бесшумная" инсталляция/деинсталляция. В NSIS в скрипте используются параметры, инструкции (команды), а также переменные и функции. Параметры и команды могут компоноваться в секции, которые связываются с типами инсталляции. Если выбирается определенный тип инсталляции (к примеру, полная, компактная и т.д.), то связанные секции отмечаются как требующие инсталляции. В процессе установки пользователь от них может отказаться. Есть зарезервированные имена для функций обратного вызова (callback, например: .onInit, onNextPage), прочие функции именуются по усмотрению автора скрипта и вызываются с помощью инструкции call. Использование функций требует того, чтобы хотя бы бегло, а лучше - внимательно, разобраться в руководстве. В помощь этому в поставку инсталлятора включено несколько примеров скриптов, которые можно использовать за основу. Использование функций делает NSIS очень гибким инструментом, возможностей много, так что есть что изучать и использовать.
Средств генерации скрипта наподобие мастера нет, но есть онлайновый генератор скриптов, расположенный по адресу www.nullsoft.com/free/nsis/makensitemplate.phtml.
Для NSIS также есть инструментарий сторонних производителей, облегчающий работу по созданию скриптов инсталляции. Один из них - NSIS Workbench - находится по адресу www.techmarc.co.uk/fnsis.htm. NSIS Workbench содержит редактор с подсветкой синтаксиса, макросредства для облегчения ввода зарезервированных имен параметров, функций и инструкций. Он также имеет подробный мастер, позволяющий создать основу инсталляционного скрипта.
У некоторых пользователей еще сильно представление о том, что ничего хорошего от бесплатных программ ждать не следует. Рассмотренные системы, несмотря на свою бесплатность, имеют достаточные возможности. А бесплатность в ряде случаев - дополнительное преимущество. Так что, как говорится, не проходите мимо.
Юрий А. СМАНЦЕР,
georgesman@mail.ru
Горячие темы