Установщик абстрагирует процесс развертывания сложных частей программной инфраструктуры , которая обычно содержится в архиве, через удобный, самодостаточный пользовательский интерфейс .
Этот пользовательский интерфейс может быть графическим или основываться на тексте, который выводится в командной строке, такой как оболочка unix (например, bash). В случае графических установщиков чаще всего используется так называемый установочный загрузчик, в последнем случае это установочные сценарии, которые могут быть bash-сценариями, пакетными сценариями Microsoft или любым другим языком сценариев, который запускается из командной строки.
В простейшем случае приложение - это просто исполняемый файл, и операционная система знает, что делать с файлом, чтобы запустить его. Файл приложения может находиться в папке с подпапками и другими вспомогательными файлами, упакованными в один архив . В этом случае установщик может не потребоваться.
Для сложного программного обеспечения могут быть желательны целые программные платформы и тесная интеграция с базовой инфраструктурой операционной системы , например, для обеспечения защиты авторских прав на программный продукт.
Многие установщики в Windows предоставляют /e
или /extract
флаг. например, setup.exe /e
чтобы разрешить извлечение содержимого архива без установщика, запускающего скрипт установки. Мне недавно нужно было сделать именно это .
На пути к мобильности
Установщики почти стали нормой для предоставления профессионального программного обеспечения, независимо от того, насколько просты основные программные ресурсы. С ростом числа пользователей, разбирающихся в компьютерах, и желанием переносить приложения с одного рабочего стола на другой, портативное программное обеспечение , часто поставляемое в виде простого архива, становится все более популярным.
( Я не знаю, сколько всего времени я потратил на установщиков, но это определенно порядка нескольких дней. )
Задачи, которые может выполнить установщик:
- распаковка (часто с использованием экзотических архиваторов с высокой степенью сжатия)
- обеспечение системных требований к оборудованию
- обеспечение достаточного места на жестком диске
- обеспечение требований времени выполнения программной платформы (например, «распространяемые»)
- проверка обновлений программного обеспечения
- загрузка программного обеспечения из удаленного хранилища
- создание и / или обновление программных файлов и папок
- создавать файлы конфигурации, записи реестра или переменные среды
- установить драйверы программного обеспечения, подключить или отключить устройства
- повысить доступность для обычных пользователей, объясняя шаги установки, создавая ссылки, ярлыки
- продвигать собственное программное обеспечение через закладки и т.д ...
- создать стимул для пользователя для фактического запуска программного обеспечения, представляя ключевые точки программного обеспечения во время установки, слайд за слайдом
- создать дополнительный доход за счет программного обеспечения
- настраивать модули ядра и автоматически запускаемые компоненты (например, демоны, windows-сервисы)
- автоматическое исправление программного обеспечения
- настройка папки, файла и прав доступа пользователя
- создание идентификаторов GUID для связи программного обеспечения с конкретным экземпляром установки и, например, предотвращения переносимости
... Если вы можете подумать о других моментах, дайте мне знать, и я включу их.