Создание инсталлятора
Цель лекции
На лекции осваиваются приемы разработки инсталляционного файла нашей программы.
Зачем нужны инсталляторы
Наш курс подходит к концу. Мы написали множество проектов, научились делать справку и подключать её к программе, но хотелось бы ещё какие-то из проектов опубликовать в Сети! А что для этого требуется? Установочный файл. Кстати, если вы будете писать программы на заказ, то создание инсталлятора почти наверняка будет обязательным условием проекта.
Казалось бы, можно обойтись каким-нибудь популярным архиватором вроде WinRAR, сделать на нем самораспаковывающийся SFX-архив, прописать, какой файл программы куда должен быть распакован. Однако так вы получите лишь примитивный инсталлятор, в котором пользователю не предоставляется никаких возможностей выбора, а это плохо - даже если пользователь при установке программ обычно использует все настройки "по умолчанию", нажимая только кнопки "Далее" или "Next", ему нравится осознавать, что от него что-то зависит, что он имеет возможность выбора.
Предположим, ваш проект достаточно сложен, содержит десятки файлов. Вы желаете, чтобы пользователь имел выбор способа установки вашей программы: куда устанавливать, нужно ли создавать ярлыки на рабочем столе и в панели быстрого запуска? Устанавливать ли полную версию, выборочную или минимальную? Регистрировать ли программу в реестре или создать INI-файл? Кроме того, пользователь может когда-нибудь захотеть эту программу удалить со своего ПК, а значит, нужно предусмотреть и обратный процесс - деинсталляцию. Все эти операции сделать в обычном архиваторе будет невозможно, или, по крайней мере, чрезвычайно сложно. Зато эти же операции легко создаются в специальных программах-инсталляторах, которые входят в группу утилит программиста. О них и будем говорить на этой лекции.
Обзор инсталляторов
Некоторые среды разработки программ имеют в своем составе инсталляторы. Так, в состав Delphi входит бесплатный инсталлятор Install Shield Express, который, кстати, можно скачать с сайта производителя. Считается, что если в состав IDE входит инсталлятор, то для создания инсталляционного файла (или CD) лучше пользоваться им. Install Shield Express, например, имеет очень удобную функцию включения в инсталляционный пакет "движка" баз данных BDE, который, впрочем, уже устарел, и теперь практически не используется. Ничего другого выдающегося у Install Shield Express не наблюдается, поэтому даже Delphi-программисты предпочитают более "продвинутые" инсталляторы.
Lazarus вообще не имеет в своем составе подобной утилиты, однако существует множество инсталляторов сторонних разработчиков - как платных, так и бесплатных, с помощью которых Lazarus-программист может создать инсталляционный файл или даже загрузочный CD/DVD.
Какие ещё инсталляторы существуют? Их множество: Setup Factory, Visual Studio Installer, Nullsoft Install System, Smart Install Maker и много-много других.
Особо хотелось бы выделить один из самых популярных бесплатных инсталляторов, обладающих широкими возможностями - Inno Setup. Это система создания инсталляторов для Windows-программ. Inno Setup появился в 1997 году и является не просто бесплатным, но и открытым проектом (Open Source), превосходит многие коммерческие установщики по функциональности и стабильности. Мы будем рассматривать создание инсталляторов на основе Inno Setup.
Inno Setup можно скачать с сайта производителя, официальная страничка: http://www.jrsoftware.org/isinfo.php
Или же, вы можете скачать эту программу с моего сайта:
Следует заметить, что при написании курса рассматривалась версия Inno Setup 5.5.4, а они достаточно часто обновляются. Так что на сайте производителя, возможно, вы найдете более свежую версию.
Файл лицензии
Обычно при установке какой либо программы, пользователю вначале предлагается прочитать и принять лицензионное соглашение (лицензию) программы. Пользователь читает (или чаще, не читает) лицензию, устанавливает радиокнопку с надписью "Я принимаю условия" (или что-то аналогичное), после чего становится доступной кнопка "Далее". Наверное, наш инсталлятор должен также выводить какую то лицензию? Где её взять, или как её сделать, не будучи юристом?
Тут совет простой: найдите схожую с вашей программу, и используйте текст её лицензии, переделав лишь название программы, копирайта (того, кому принадлежит авторское право), номер версии, и т.п. То есть, если вы собираетесь опубликовать в Интернете вашу программу, как бесплатную (freeware), то и лицензию копируйте у другой бесплатной программы. Поскольку все лицензии имеют примерно одинаковые предлагаемые условия и используют одинаковую терминологию, то ничего страшного в данной хитрости нет. Создайте обычный текстовый файл с текстом лицензии, например, в стандартном Блокноте. Мы рассмотрим создание инсталлятора для нашего Блокнота-шифровальщика из лабораторной работы "Блокнот - шифратор" , поэтому и файл с лицензионным соглашением должен быть об этой программе. Назовите файл License.txt (так обычно называют файлы с лицензией), а текст этого файла может быть примерно таким:
"CodeBook" (Блокнот-шифровальщик)
Copyright (c) 2014, В.Ю. Ачкасов
Версия 1.0 (freeware)
----------------------------------------------
До установки и/или использования этого программного обеспечения, внимательно ознакомьтесь с условиями этого лицензионного соглашения и ограниченной гарантии.
ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ
АВТОРСКОЕ ПРАВО
Программное обеспечение "CodeBook", включая документацию и другие дополнительные материалы, защищено законами и международными соглашениями об авторских правах, а также другими законами и договорами, регулирующими отношения авторского права. Данное программное обеспечение лицензируется, а не продается.
Всеми авторскими правами на программу "CodeBook" владеет только её автор - Вячеслав Юрьевич Ачкасов. Все права, не предоставленные здесь явно, сохраняются за автором. Автор оставляет за собой право отменить действие данной лицензии в любой из следующих версий программы.
ИСПОЛЬЗОВАНИЕ И РАСПРОСТРАНЕНИЕ:
Текущая версия "CodeBook", документация и сопутствующие файлы могут свободно использоваться, а также копироваться, передаваться и распространяться любыми способами при соблюдении следующих условий:
- Файлы должны распространяться в неизменном исходном виде. Это должен быть исходный архив, сформированный автором. Не допускается взимание платы за распространение "CodeBook" без письменного разрешения автора. |
- "CodeBook" не может быть продан или перепродан, включен в состав другого программного обеспечения, использоваться в службе поддержки коммерческого предприятия, или использоваться для иного способа получения прибыли, без письменного разрешения автора. |
- При цитировании, перепечатке или другом использовании любых фрагментов документации или файлов, входящих в "CodeBook", ссылка на автора и источник цитирования обязательна. |
- Вы не можете использовать, копировать, эмулировать, создавать новые версии, сдавать в наем или аренду, продавать, изменять, передавать программу или любые из ее составляющих, иначе, чем определено настоящим лицензионным соглашением. |
- Вы не можете декомпилировать, дизассемблировать, изучать код программы другими способами, кроме случаев, когда такая деятельность явно разрешается законом, несмотря на это ограничение. |
- Любое такое нелегальное использование означает автоматическое и немедленное прекращение действия настоящего соглашения и может преследоваться по закону. |
ГАРАНТИИ
"CodeBook" распространяется по принципу "КАК ЕСТЬ". Любые последствия, финансовые и другие потери, могущие наступить вследствие использования "CodeBook" самой по себе и/или совместно с другим программным обеспечением не могут являться поводом для предъявления каких-либо претензий к автору и официально уполномоченным распространителям.
Установка и/или использование "CodeBook" означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними. Если почему-либо вы не согласны с этим лицензионным соглашением, вы не имеете права устанавливать или использовать данное программное обеспечение и вам необходимо удалить файлы дистрибутива "CodeBook" с ваших устройств хранения информации и прекратить их использование.
Copyright (c) 2014, В.Ю. Ачкасов
Разумеется, вы можете изменить этот текст - добавить или удалить какие либо разделы, изменить фамилию правообладателя на свою, добавить собственные данные для обратной связи (e-mail, ваш сайт). Но в целом, текст файла с лицензионным соглашением должен выглядеть примерно так.