Самонадевающиеся Шаровары
АрхивТема разработки shareware и freeware, о которой шла речь в моей предыдущей статье, воистину бесконечна. Но на этот раз я хочу коснуться не философских и экономических аспектов, а конкретного инструментария шареварщика.
Тема разработки shareware и freeware, о которой шла речь в моей предыдущей статье («Шаровары наших дней», «КТ» #432), воистину бесконечна. Но на этот раз я хочу коснуться не философских и экономических аспектов, а конкретного инструментария шареварщика. Как известно, встречают по одежке, а провожают по уму. Глупо, а что делать? «Жизнь сейчас такая тяжелая», как любит говорить мой начальник. Что, собственно, видит человек, прежде чем начинает непосредственно пользоваться программой? Опустим процесс поиска, выбора и скачивания конкретного продукта, предположим, что на винчестере пользователя уже лежит нужный файлик…
Стоп, а почему именно файлик? Ведь сейчас любой приличный пакет содержит их десяток-полтора: исполняемый модуль, помощь, текстовая информация о программе, форма регистрации, лицензия на использование, список изменений, дополнительные библиотеки, ярлыки и т. д. Но файлик, тем не менее, должен быть один - так проще скачать всю программу. Мало того, он должен быть еще и запакован, дабы наш гипотетический пользователь мог скачать его быстро, а если возникнет необходимость - отнести на одной дискете домой/другу/на работу.
Что и говорить, запакованный файл - несомненное благо. Но чтобы извлечь из него десяток файлов, нужно запустить архиватор, создать каталог и переписать туда содержимое, да еще и сделать ярлыки для быстрого запуска программы. Неудобно и долго.
Вот так мы и приходим к идее инсталлятора - утилиты, которая из многих файлов готовит один (реже - несколько), а при установке программистского творения на компьютер пользователя извлекает из этого единственного файла оригиналы, создает ярлыки и делает еще множество полезных вещей, о которых я скажу чуть позже.
Вы можете возразить, что давным-давно существуют самораспаковывающиеся архивы и что тот же WinRAR может делать их так, что при открытии и текст лицензии показывается, и ярлыки создаются. Но, как писал когда-то Сергей Лукьяненко, «есть игры, а есть Игры». Точно так же дело обстоит и с инсталляторами. WinRAR выглядит неумехой рядом с монстром под названием InstallShield. Если название вам ничего не говорит, то напомню: градиентный синий экран и панелька с тремя вертикальными индикаторами прогресса 1. По части создания инсталляционных файлов этот продукт может ВСЕ! Услугами InstallShield пользуются многие крупные производители софта. И даже Microsoft им не брезгует 2.
Похожими возможностями обладает Wise Installation System, см. рис. 1. Впрочем, мелкие фирмы, а тем более шареварщики все же предпочитают более легкие продукты, не обремененные лишними функциями, - и, разумеется, более дешевые, поскольку цена монстров прямо пропорциональна их возможностям.
Справедливости ради уточню, что существует облегченная версия InstallShield Express (рис. 2), которая бесплатно поставляется со многими языками программирования. Но мне она показалась слишком упрощенной.
Весь процесс создания дистрибутива в ней сводится к последовательным шагам:
-
заносится общая информация (название программного продукта, его версия, адрес сайта, телефон);
-
задаются режимы установки (полная, минимальная) и принадлежащие им файлы;
-
указываются дополнительные библиотеки и драйверы, которые надо установить (MFC, MS Chart, MS Access Driver);
-
производится настройка изменений реестра, INI-файлов и другой системной информации;
-
создаются ярлыки;
-
указываются диалоги, которые будут отображаться во время установки;
-
задаются требования к компьютеру (1024 Мбайт памяти, Pentium-V) и программному обеспечению (Windows 3000 Beta 17 with SP 8) и др.
После этого можно собрать установочную программу и протестировать ее.
Хотя размер полученного файла окажется больше размера исходных файлов 3, будем полагать, что любой человек теперь сможет инсталлировать ваше творение на свой компьютер, если, конечно, ваши требования совпадают с его возможностями.
Третья утилита из весовой категории «монстры» - Installer VISE, рис. 3. Функциональность практически такая же, что и у InstallShield, но вот «интуитивная понятность» интерфейса, увы, подкачала. Не считая себя тормозом или отставшим от современных принципов софтостроения человеком, я, по привычке отказавшись от визарда, битый час тупо кликал мышью, чтобы собрать дистрибутив.
Впрочем, у этого инсталлятора есть «экономическое» преимущество перед InstallShield: шареварщики могут пользоваться им бесплатно - за показ окошка во время установки. Свой альтруизм разработчики объяснили в нескольких проникновенных строчках: «Наша фирма начиналась с двух друзей, занимающихся shareware. Мы помним, как тяжело начинать создавать продукты, не имея бюджета. Поэтому мы решили дать возможность создателям утилит пользоваться Installer VISE бесплатно».
До сих пор мы говорили о довольно известных продуктах. Но и среди менее распространенных есть достойные упоминания и грозящие со временем превратиться в брэнды. Опять же, повторюсь: мелкие шареварные фирмы и шареварщики-энтузиасты предпочитают именно их.
Начну с Inno Setup, рис. 4. Очень простая утилита, которая подойдет практически всем. Если пользоваться визардом, то покажется около восьми диалоговых окон, после заполнения которых будет готов дистрибутив. Все настройки хранятся в текстовом файле, который нетрудно отредактировать. Программа бесплатная - и, думаю, большинству шареварщиков возможностей Inno Setup хватит с головой. Впрочем, если вас что-то не устроит, можно скачать исходники на Delphi и сконфигурировать ее «под себя».
Следующий бесплатный и простой продукт - Setup Generator, рис. 5. Понятный графический интерфейс, возможность менять язык интерфейса инсталлятора, и, что особенно ценно, размер получаемого файла дистрибутива меньше, чем у всех прочих просмотренных мною программ. Я даже знаю почему - там нет заставочных картинок!
Наконец, дошла очередь до инсталлятора, который я считаю самым лучшим с точки зрения предоставляемых возможностей, но с которым постоянно возникают проблемы у пользователей моего скромного детища - программы mp3Tag 4. Называется он Ghost Installer. Насколько можно судить по информации, размещенной на сайте разработчика, инсталлятор очень популярен и поставляется в нескольких вариантах.
Продукт умеет все то же, что и Setup Generator, плюс имеет кучу дополнительных функций. Может быть, это связано с особенностями моего мышления, но я не представляю идеальный инсталлятор без переменных. Здесь они реализованы 5. Еще одним большим достоинством Ghost Installer я считаю возможность выбора языка общения в процессе установки. Иначе получается нелогично: я написал программу с поддержкой многоязыкового интерфейса, а ее инсталляция проходит только на одном. Встречают-то по одежке...
А теперь о минусах. Недостаток первый: в Ghost Installer отсутствует графическая среда. Приходится использовать скриптовый язык, который редактируется в текстовом редакторе. Не хватает и кое-каких нужных в хозяйстве вещей, например вопроса о создании ярлыков на рабочем столе: можно только «жестко» их туда поместить, что многих пользователей раздражает (знаю по себе). Зато «безвозмездно, то есть даром».
У той же фирмы есть и «альтернативный» инсталлятор - Ghost Installer Studio (рис. 6), в который входит визуальная оболочка gDesigner. Работать с ним, конечно, удобнее - можно пользоваться графической средой, а можно все тем же скриптовым языком, который хранится в формате XML. Но в бесплатной версии некоторые возможности отсутствуют.
У всех описанных мною инсталляторов есть и достоинства, и недостатки - как, впрочем, у любых программ. Но если в вас живет неистребимая тяга к перфекционизму, попробуйте создать свой инсталлятор. Ежели он получится хорошим, я готов им пользоваться и написать еще одну статью.
1 (обратно к тексту) - Я до сих пор не знаю, что означает правый, у которого постоянно горит «Low».
2 (обратно к тексту) - При запуске программы установки сразу можно определить тип инсталлятора. Если компьютер уходит в своп, не переставая мигать лампочками, это скорее всего - InstallShield.
3 (обратно к тексту) - У меня получилось более 4 мегабайт против 600 килобайт.
4 (обратно к тексту) - См. «Домашний компьютер» №4 за этот год.
5 (обратно к тексту) - Конечно, «монстры» тоже имеют развитый скриптовый язык, в котором есть не только переменные.