Поставка кроссплатформенного настольного приложения - PullRequest
2 голосов
/ 20 августа 2011

Мы пытаемся доставить кроссплатформенное настольное приложение на 3 основные платформы (Windows, MacOSX и Linux). В Windows распространение очень распространено через установщик exe и dmg на MacOSX. У меня вопрос, что распространять на Linux?

Я видел компании, распространяющие двоичные файлы .sh. Это лучший способ доставки для Linux?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Некоторые компании, такие как Mozilla, распространяют один tar.gz на архитектуру:

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

Другие компании, такие как Google, распространяют несколько форматов пакетов или, по крайней мере, .rpm и .deb, нацеленные на основные версии основных дистрибутивов.

  • compact, общие зависимости обрабатываются менеджером пакетов,
  • использует стандартный менеджер пакетов, легко поддерживается централизованно,
  • нужны права для установки,
  • необходимо внимательно следить за совместимостью с поддерживаемыми дистрибутивами,
  • нуждается в сложной инфраструктуре упаковки.
0 голосов
/ 23 августа 2011

Хотя пакеты .rpm и .deb являются стандартом для многих дистрибутивов Linux, как упоминалось в 9000, вам придется поддерживать несколько форматов, а также беспокоиться о различиях в разных версиях менеджеров пакетов.Например, RPM-пакеты, ориентированные на 4.x, не будут работать на 3.x:

http://fedora.linuxsir.org/fedoradocs/rpm-guide/en/ch-rpm-evolution.html

, и во многих случаях зависимость RPM между дистрибутивами довольно велика.Если ваше приложение является популярным приложением с открытым исходным кодом, то это не проблема, так как сопровождающие дистрибутива позаботятся о создании пакетов для него.Ситуация меняется, если вы являетесь коммерческой компанией или компанией с закрытым исходным кодом, в частности, если вам также требуется поддержка Windows и OS X

Иногда удобнее иметь один установщик, который будет работать поверх различных дистрибутивов Linux илив некоторых случаях вам нужно больше гибкости при запросе необходимой информации у вашего конечного пользователя до фактической установки вашего приложения.Сценарии оболочки, используемые некоторыми компаниями (внутренняя упаковка tar.gz), могут обойти это ограничение собственных пакетов, но все еще очень ограничены в своем интерфейсе и очень сложны в обслуживании (большая часть логики должна быть включена в сценарий оболочки, обязательнобыть переносимым среди разных оболочек ...).Они также требуют предварительной распаковки прилагаемого файла tar.gz.

Существуют некоторые инструменты, которые позволяют создавать исполняемый двоичный установщик, независимый от версии Linux и легко настраиваемый.Эти инструменты имеют то преимущество, что их легче поддерживать и устанавливать, но в зависимости от инструмента могут потребоваться некоторые предварительные условия на целевом компьютере, например Java.

Вы можете попробовать наш BitRock InstallBuilder (отказ от ответственностиЯ один из разработчиков), который создает бинарные установщики, которые работают в любой версии Linux без каких-либо внешних зависимостей или предварительных условий.Сгенерированные установщики добавляют минимальные издержки к упакованным файлам и их очень легко настроить.Кроме того, один и тот же файл проекта может использоваться совместно для генерации нескольких платформ, поэтому у вас может быть три платформы с минимальной добавочной работой.Мы также поддерживаем создание пакетов .rpm и .deb, но, как упоминалось выше, вы потеряете гибкость.Хочу отметить, что мы предлагаем бесплатные лицензии для проектов с открытым исходным кодом.

...