Я набросаю процесс развертывания приложений для создания довольно сложных настольных приложений. У нас есть как родные, так и Java-приложения, поэтому развертывание должно быть в состоянии проверить наличие JRE и при необходимости установить его. Некоторые из приложений зависят от специального оборудования, поэтому развертывание также должно быть в состоянии запустить необходимые установщики драйверов. Некоторые из приложений являются мультиплатформенными, и предпочтительно тот же механизм должен иметь возможность создавать установщики Windows, Linux и Mac OS X. То есть:Создание инсталляторов для сложных кросс-платформенных программ
- Установщик необходимо быть в состоянии установить, в дополнение к самой программе:
- Java Runtime Environment.
- Драйверы (аппаратные средства) - то есть запуск других инсталляторов.
- Установщик строитель должен быть выполнен из командной строки, так что она может быть интегрирована с автоматическим механизмом сборки, который генерирует программы установки пакетов для каждой платформы в ночных сборках.
- Кроме того, мне нужно создать механизмы «обновления из Интернета» для приложений. Он может быть включен в программу установки или может также быть отдельным настраиваемым механизмом, встроенным в приложение.
Теперь это становится немного сложным, и я подозреваю, что не может быть ни одного установщика, который мог бы все это сделать. Поэтому я думаю, между двумя принципиально разными подходами:
- механизмов платформы конкретных: NSIS бы создать
.exe
или.msi
для Windows, XXX будет создавать.deb
для Ubuntu, и YYY будет создавать.dmg
для OS X. - Кросс-платформенный установщик, который выполнил бы все вышеперечисленные требования: ZZZ?
Любые рекомендации? Некоторые варианты, которые я посмотрел, включают:
Есть ли универсальный инструмент для этого, или я должен просто выбрать подходящий инструмент отдельно для каждой платформы? В последнем случае, что будет «эквивалентами NSIS» для Ubuntu и Mac OS X?
OS X уже в JRE по умолчанию не так ли? – rogerdpack
@rogerdpack: [Не больше] (http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html#//apple_ref/doc/uid/TP40010380-CH4-DontLinkElementID_2), К сожалению. –