Инсталлятор
Инсталляция (установка) — процесс установки программного обеспечения на компьютер конечного пользователя. Выполняется особой программой (пакетным менеджером), присутствующей в операционной системе (например, APT в GNU/Linux, Windows Installer в Microsoft Windows), или же входящим в состав самого программного обеспечения средством установки. В операционной системе GNU toolchain и её аналогов для компиляции программного обеспечения непосредственно перед установкой.
Большинство программ поставляются для продажи и распространения в сжатом (упакованном) виде. Для нормальной работы они должны быть распакованы, а необходимые данные правильно размещены на компьютере, учитывая различия между компьютерами и настройки пользователя. В процессе установки выполняются различные тесты на соответствие заданным требованиям, а компьютер необходимым образом конфигурируется (настраивается) для хранения файлов и данных, необходимых для правильной работы программы. Установка, как правило, включает в себя размещение всех необходимых программе файлов в соответствующих местах файловой системы, а также модификацию и создание конфигурационных файлов. Пакетные менеджеры также выполняют при установке контроль зависимостей, проверяя, есть ли в системе необходимые для работы данной программы пакеты, а в случае успешной установки регистрируя новый пакет в списке доступных. Так как данный процесс является различным для каждой программы и компьютера, то многие программы (включая операционные системы) поставляются вместе с универсальным или специальным инсталлятором — программой, которая автоматизирует большую часть работы, необходимой для их установки.
Некоторые компьютерные программы написаны таким образом, что устанавливаются простым копированием своих файлов в нужное место, а самого процесса установки как такового нет. Про такие программы говорят, что они не требуют установки. Это распространено среди программ для Mac OS X, Microsoft Windows. Существуют операционные системы, которые не требуют установки, и, таким образом, могут быть напрямую запущены с загрузочного CD, USB, не оказывая воздействия на другие ОС, установленные на компьютере пользователя. Примером такой ОС является
Данный термин также распространяется на плагины, драйверы и программные файлы, которые сами по себе не являются программами.
Обычные операции, выполняемые в процессе установки ПО, включают создание или изменение:
- Используемых и неиспользуемых совместно программных файлов
- директорий
- Записей конфигурационных файлов, используемых одной программой, или совместно
- Переменных среды
- Ссылок или ярлыков
Некоторые жаргонные выражения
Установка вручную Установка выполняется без установщика или со значительным количеством операций, вручную выполняемых пользователем. Тихая установка Установка, в процессе которой не отображаются сообщения или окна. «Тихая установка» не является синонимом «автоматической установки», хотя часто ошибочно используется в этом значении. Автоматическая установка Установка, которая выполняется без вмешательства со стороны пользователя, исключая, конечно, сам процесс её запуска. Процесс установки иногда требует пользователя, который «сопровождает» его, делая выбор по требованию: принимая EULA, устанавливая настройки, указывая пароли и т. д. В графических средах могут использоваться инсталляторы, которые предоставляют так называемого Мастера установки, однако и они зачастую предоставляют параметры командной строки, позволяющие выполнить полностью автоматическую установку. Самоустановка Автоматическая установка, которая не требует начального запуска процесса. Например, Vodafone Mobile Connect USB Modem, который самоустанавливается с USB‐порта компьютера. Удалённая установка Установка, которая выполняется без использования монитора, подсоединеного к компьютеру пользователя (в частности, выполняемая на компьютере без видео выхода вообще). Это может быть контролируемая установка с другой машины, соединенной через LAN или посредством последовательного кабеля. Автоматическая и удалённая установки являются обычными операциями, выполняемыми системными администраторами. Чистая установка Ввиду сложности типичной установки, имеется множество факторов, влияющих на её успешный исход. В частности, файлы, оставшиеся от предыдущей установки этой же программы, или нестабильное состояние операционной системы могут привести к неправильной установке и работе программы. Установка, выполняемая в отсутствие таких «мешающих» факторов, которые могут изменяться от программы к программе и называется чистой установкой. Непосредственная установка Установка программы, выполняемая с её копии на жестком диске (называемой flat copy) с оригинального носителя (обычно CD или DVD), а не с самого оригинального носителя. Это может быть полезным в ситуациях, когда целевая машина не способна справиться с произвольным доступом для чтения с CD/DVD во время выполнения задач, вызывающих большую загрузку процессора, как, например, при установке программ.
Инсталлятор
Программа установки или инсталлятор — это компьютерная программа, которая устанавливает файлы, такие как приложения, драйверы, или другое ПО, на компьютер. Некоторые инсталляторы специально сделаны для установки содержащихся в них файлов; другие же являются универсальными и работают, считывая содержимое комплекта программного обеспечения, которое необходимо установить.
Различия между системой управления пакетами и инсталлятором:
Package Management System | Installer |
---|---|
Обычно часть операционной системы | Каждый продукт поставляется вместе со своим инсталлятором |
Использует одну базу данных для установки | Производит свою установку |
Может проверять и управлять всеми пакетами в системе | Работает только со связанным продуктом |
Один производитель | Много производителей |
Один формат пакета | Много форматов инсталлятора |
Распространенные инсталляторы
Windows NT
Наиболее популярным форматом для ОС Windows NT является установочный пакет MSI, который устанавливается посредством Windows Installer. Компании, производящие средства для создания инсталляторов: InstallShield, Macrovision InstallAnywhere, Wise, SetupBuilder, Actual Installer [1] , Smart Install Maker [2] и ScriptLogic Corporation (ранее MaSaI Solutions). Большинство из этих средств могут создавать как пакеты MSI, так и свои собственные пакеты.
Бесплатными альтернативами являются NSIS, Clickteam, Install Creator, Inno Setup, а также инструментальные средства от WiX.
дистрибутивов операционных систем на базе Linux и системы управления пакетами, с помощью которых можно устанавливать как необходимые компоненты операционной системы, так и стороннее ПО, зачастую даже если оно использует собственный инсталлятор, которым это не предусмотрено.
ОС Mac OS X также использует систему управления пакетами. Некоторые коммерческие приложения для Mac OS X используют отдельный инсталлятор, например, Installer VISE или Stuffit InstallerMaker. Приложения, которые не нуждаются в установке дополнительных компонентов системы, могут быть установлены посредством простого копирования файлов приложения в нужное место на жестком диске. ОС Mac OS X также включает отдельное приложение для обновления программ Software Update (также известное как команда оболочки «softwareupdate»), но оно поддерживает только системное ПО и Apple ПО.
Разное
BitRock имеет многоплатформенное инструментальное средство, называемое InstallBuilder, которое создает инсталляторы для Windows, Mac OS X, GNU/Linux и многих других ОС и является и собственническим и коммерческим, но бесплатным для проектов с открытыми исходными кодами. Приложения, написанные на языке программирования [3] , позволяющее создавать кросс-платформенные инсталляторы.
Некоторые архиваторы также позволяют создавать инсталляторы.
Некоторые операционные среды — например, Windows NT (по умолчанию) и Xfce 4 (по желанию пользователя), содержат функцию автоматического запуска определённой программы, находящейся на носителе, при его вставке в устройство чтения.
Как компромис между инсталлятором Windows и системами управления содержимым UNIX-подобных машин, существуют системы управления установкой Windows.
Примечания
- ↑http://www.actualinstaller.com/ru/
- ↑http://ru.sminstall.com/
- ↑http://www.izforge.com/izpack/
Внешние ссылки
- Unattended, A Windows deployment system
- Wiki for unattended windows installation scripts
- Silent installers on the WPKG wiki
- Silent Switches Collection
- Online Unattended Setup
О выборе инсталлятора
Вопрос выбора инсталлятора, как мне кажется, стоит чуть ниже вопроса выбора языка программирования. Кривой инсталлятор действительно может испортить все впечатление от продукта, поэтому подойти надо со всей ответственностью.
Разумеется, что вопрос выбора системы инсталяции стоит перед разработчиками под Windows — я не особо знаком с системой установки в остальных операционных системах, знаю только магическую команду make install и про pkg-add. Поэтому буду рад, если кто-то осветит эту тему с той стороны.
0. А нужно ли инсталлировать?
Вообще, вопрос, конечно, интересный. Для Веб-приложений он никакого смысла не имеет, а вот для обычных приложений важен. Я всегда считал, что инсталлятор стоит сделать как-минимум для того, чтобы показать пользователю лицензионное соглашение.
Конечно, есть варианты показывать его при первом запуске программы, но тогда придется либо в файле конфигурации программы, либо в реестре хранить то, что запуск не первый. Этот вариант мне не по душе.
Для многих программ инсталляция будет просто копированием файлов, но, однако, также инсталлятор является удобным поводом проверить установленность всех необходимых компонентов программы — .NET, нужная версия MFC, наличие прав администратора и т.д.
1. А что, есть выбор?
Вообще, в области инсталляции под Windows уже давно есть четкое разделение технологий инсталляции и то, с помощью чего эти технологии брать в узду.
2. Windows Installer
Любой желающий создать инсталлятор должен знать, что это — технология, которая весьма и весьма сильно держит весь рынок установки под Windows. Причина этого — монополия Microsoft в области его обновления у конечного пользователя.
Про саму технологию ничего плохого сказать нельзя, она действительно существует уже достаточно давно и откатана. Поэтому здесь задача заключается только в выборе инструмента, с помощью которого можно создать этот самый инсталлятор.
Вариантов тут достаточно много, начиная с бесплатного WiX, который, как мне кажется, очень приятен, заканчивая платными решениями от InstallShield, Wise и пр.
В чем положительная сторона Windows Installer? Если использовать его для автоматизированной установки программ пользователю (через политику Active Directory), то получается реально круто. Пользователь только заходит в систему, а программа ему уже ставится. И все в одном флаконе.
Минус я вижу один — не самое убийственное сжатие, которое можно довести до ума любым архиватором.
3. Не Windows Installer
Однако, мы же можем взять любой другой инсталлятор, правда? Да, но тогда их становится безумное множество, начиная от скриптовых решений и заканчивая самопальными инсталляторами. Здесь достаточно интересен (для меня лично) NSIS, поскольку это (почти) полноценный язык программирования — есть переменные, стек, сравнения и т.д.
Есть Inno Setup, который также абсолютно бесплатен и построен на скриптовании, поддерживает хорошее сжатие.
И не стоит также забывать о том, что решения от InstallShield и Wise могут создавать и не-Windows Installer инсталляторы.
Если говорить о моем личном выборе, то я пользуюсь NSIS, не в последнюю очередь потому, что там действительно безумно маленький объем исполняемого кода. 32 килобайта и привет.
4. А как насчет реальной кроссплатформенности?
Честно говоря, пока, насколько я видел, никак. Те решения, которые я видел на основе IzPack требуют для установки JVM, а это плохо подходит для тех пользователей, у которых ее нет под рукой или нет в системе.
При подготовке материала использовались источники:
https://dic.academic.ru/dic.nsf/ruwiki/940473
https://habr.com/ru/articles/20560/