2009-11-23 2 views
2

Я набросаю процесс развертывания приложений для создания довольно сложных настольных приложений. У нас есть как родные, так и Java-приложения, поэтому развертывание должно быть в состоянии проверить наличие JRE и при необходимости установить его. Некоторые из приложений зависят от специального оборудования, поэтому развертывание также должно быть в состоянии запустить необходимые установщики драйверов. Некоторые из приложений являются мультиплатформенными, и предпочтительно тот же механизм должен иметь возможность создавать установщики Windows, Linux и Mac OS X. То есть:Создание инсталляторов для сложных кросс-платформенных программ

  • Установщик необходимо быть в состоянии установить, в дополнение к самой программе:
    • Java Runtime Environment.
    • Драйверы (аппаратные средства) - то есть запуск других инсталляторов.
  • Установщик строитель должен быть выполнен из командной строки, так что она может быть интегрирована с автоматическим механизмом сборки, который генерирует программы установки пакетов для каждой платформы в ночных сборках.
  • Кроме того, мне нужно создать механизмы «обновления из Интернета» для приложений. Он может быть включен в программу установки или может также быть отдельным настраиваемым механизмом, встроенным в приложение.

Теперь это становится немного сложным, и я подозреваю, что не может быть ни одного установщика, который мог бы все это сделать. Поэтому я думаю, между двумя принципиально разными подходами:

  1. механизмов платформы конкретных: NSIS бы создать .exe или .msi для Windows, XXX будет создавать .deb для Ubuntu, и YYY будет создавать .dmg для OS X.
  2. Кросс-платформенный установщик, который выполнил бы все вышеперечисленные требования: ZZZ?

Любые рекомендации? Некоторые варианты, которые я посмотрел, включают:

  • NSIS - Отлично, но только для Windows.
  • IzPack - Хорошо, но для запуска JVM требуется.

Есть ли универсальный инструмент для этого, или я должен просто выбрать подходящий инструмент отдельно для каждой платформы? В последнем случае, что будет «эквивалентами NSIS» для Ubuntu и Mac OS X?

+0

OS X уже в JRE по умолчанию не так ли? – rogerdpack

+0

@rogerdpack: [Не больше] (http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html#//apple_ref/doc/uid/TP40010380-CH4-DontLinkElementID_2), К сожалению. –

ответ

1

У меня есть несколько рекомендаций следующим образом.

  • Использование WIX (Windows Installer XML) для создания MSI инсталляторов для Windows,
  • Использование Package Maker (часть XCode инструментов) на MAC OS X, предпочтительно версии командной строки
  • Запись обертка сценариев (в Python или около того), чтобы управлять процесс создания полного процесса установки.

    • агрегировать все компоненты, необходимые для установки (может быть от Уры системы контроля версий)
    • генерировать необходимые файлы для Wix и Package Maker как можно больше
    • запустить средство упаковки и генерировать пакет
  • Убедитесь, что общий процесс создания программы установки является простой операцией одна команды в целом (с опциями для создания различных версий пакета на основе критериев, такие как выпуск отрасль и т.д.)

В целом, для разработки этого рабочего процесса требуется некоторое начальное усилие и достаточно много размышлений. Но конечный результат вполне оправдан.

Я не делал этого на стороне Linux, но я предполагаю, что в этом рабочем процессе будет использовать RPM/DEB на этом фронте.

1

Вы должны взглянуть на InstallJammer. Он определенно будет обрабатывать кросс-платформенные элементы, которые вы хотите, и даже может добавлять записи в базы данных DEB и RPM в целевой системе во время установки. Поддержка OS X по-прежнему экспериментальна, но в основном работает.

2

BitRock InstallBuilder отвечает всем требованиям, в том числе быть мультиплатформенной и обеспечивая механизм автообновления

+0

BitRock InstallBuilder выглядит хорошо, за исключением серьезного недостатка, который не внушает уверенности в Mac OS X. Установщик OSX не запрашивает аутентификацию, когда пользователь не является администратором. Достаточно большой недостаток, так как пользователи не должны запускаться как администраторы, и это очень больно, чтобы просто входить в систему, чтобы установить приложение. Кроме того, это просто установка DMG drag-and-drop. – nicerobot

+0

Пользователям предлагается ввести пароль администратора, когда требуются повышенные привилегии, а не уверен, что именно вы пытаетесь сделать. Если вам нужна помощь, свяжитесь с нами. В большинстве приложений просто требуется установка перетаскивания, нет необходимости в InstallBuilder (или любом другом установщике). Однако есть и другие приложения, для которых требуется сложный процесс установки, проверка удаленных подключений, подключение к существующей базе данных, настройка сервера приложений и т. Д., И в этом случае требуется установка –

Смежные вопросы