Существует ли универсальный кроссплатформенный установщик?
Интересно, кто-то пытался создать своего рода открытый стандарт для кроссплатформенного установщика для приложения или реализацию установщика? Это означает, что вы можете просто скачать один файл с веб-сайта, и его расширение узнаваемо в любой популярной операционной системе? У нас есть файлы.pkg и.dmg для Mac, MSI и обычные установщики.exe для Windows, пакеты.deb для Linux (в случае Debian), но у нас нет универсального для каждой платформы (например.uoi (Universal Open Installer)), лол).
Кто-то может подумать, что такой подход невозможен, потому что каждая ОС имеет свою собственную структуру и организацию файлов, но этот установщик потенциально может содержать инструкции для каждой ОС одновременно, и он может содержать даже общие файлы (например, изображения, текстуры или звуки), какими они могут быть. повторно используется для каждой платформы, и они не зависят от платформы.
Я думаю, что это хорошая идея, чтобы реализовать такой установщик, бесплатный для всех и с открытым исходным кодом
1 ответ
Общий формат упаковки кажется неуловимым. Тем не менее, есть несколько многоплатформенных инструментов развертывания. Installsite.org имеет список внизу здесь.
Я думаю, что два наиболее часто используемых инструмента (оба являются коммерческими):
- Расширенный установщик для Java / Advanced Installer Enterprise (Windows и Mac, без Linux)
- Flexera InstallAnywhere (Windows, Mac, Linux)
Есть несколько других инструментов, одним из которых является Bitrock InstallBuilder - инструмент, о котором я ничего не знаю, поэтому я не могу ни рекомендовать, ни отклонять его. Существует также QtInstaller Framework, который мне еще предстоит попробовать.
Тогда есть Zero Install - кроссплатформенное программное обеспечение для упаковки и распространения - для меня неизведанная территория. И Steam, кроссплатформенная платформа для распространения видеоигр, лицензирования и социальных игр, разработанная и поддерживаемая Valve. Используется для покупки, загрузки, установки, обновления, удаления и резервного копирования видеоигр. Работает на Windows, OS X и Linux. Похожим на Steam является Uplay от Ubisoft - еще одной платформы распространения видеоигр. Может быть, стоит упомянуть PyInstaller? (кроссплатформенные программы Python).
Я столкнулся с Oracle Universal Installer некоторое время назад в вопросе SO. Установщик на основе Java для инструментов Oracle. Тайна-инструмент. Ныне устаревшие Java-апплеты и устаревшая функция Java Web Start следует упомянуть как кроссплатформенные. Разработчики должны перейти на jlink до конца 2020 года ( Oracle PDF: обновление Java Client Roadmap).
Не так много в области реального ответа, но некоторые указатели. Повторяю, я немного знаю об этих инструментах, если честно. Я предполагаю, что последние форматы на основе XML / Zip можно сделать кроссплатформенными легче, чем предыдущие технологии, такие как файлы структурированного хранилища данных Windows COM, которые использовались для установщиков MSI. Время покажет. В эпоху облаков, кто знает, что всплывет?
Однако я могу сказать вам, что я боролся с многоплатформенными установщиками как с корпоративным упаковщиком приложений (не разрабатывая установки, а просто развертывая их), и с этими многоплатформенными установщиками всегда возникали проблемы. Очень нестандартный и высокий фактор удивления, с которым иногда приходится иметь дело. Например: вы запускаете setup.exe
который только запускает секунду setup.exe
и затем завершает работу, сообщая ничего не значащего, так что вы не знаете, что случилось с фактической установкой, которая вообще была запущена асинхронно. Такого рода вещи. Поэтому вы должны написать странные сценарии, чтобы проверить ход установки и т. Д. Работа с многоплатформенным установщиком никогда не была увлекательной.
Некоторые ссылки:
- https://en.wikipedia.org/wiki/List_of_software_package_management_systems
- http://www.pyinstaller.org/ (кроссплатформенные программы Python)
- https://en.wikipedia.org/wiki/List_of_installation_software (возможно, проверьте установщик VISE)
- https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
Я использовал конструктор установок, и да, его кроссплатформенность.. Обратной стороной является то, что вам придется платить..