Какие типы установщиков следует использовать коммерческому программному обеспечению для поддержки Linux?

9

Исходный код не является открытым или бесплатным, поэтому компиляция при установке не возможна. До сих пор я видел разработчиков, которые:

  • предоставить файл tar.gz, и пользователь может распаковать его в подходящем месте.
  • предоставьте .tar.gz сценарий install.sh для запуска основного установщика, возможно, даже запрашивая у пользователя параметры установки.
  • предоставлять файлы RPM и / или deb, позволяя пользователю продолжать использовать собственные инструменты управления пакетами, с которыми он знаком для установки / обновления / удаления.

Хотелось бы поддерживать наибольшее количество дистрибутивов Linux, сделать жизнь пользователей как можно проще, и в то же время поддерживать как можно меньше инфраструктуры сборки / упаковки / установки.

Ищу рекомендации по упаковке моего программного обеспечения.

Майк Грей
источник

Ответы:

19

Я вижу два способа взглянуть на это.

Одним из них является нацеливание на самые популярные Linux, предоставление собственных пакетов для каждого, доставка пакетов в порядке популярности. Несколько лет назад это означало, что сначала нужно было установить RPM для Linux-типов Red Hat, а затем со временем можно было перестроить RPM-код для каждого менее популярного Linux на основе RPM. Вот почему, скажем, RPM Mandriva часто немного старше, чем RPM Red Hat или SuSE. Однако в последние несколько лет Ubuntu стала очень популярной, и вы можете начать с .deb и добавить RPM позже.

Другой - попытаться настроить таргетинг на все Linux одновременно, что и пытаются сделать те, кто предоставляет бинарные архивы. Мне очень не нравится эта опция, как системный администратор и конечный пользователь. Такие tarballs разбрасывают файлы по всей системе, в которой вы их распаковываете, и позже у вас нет выбора для таких мелочей, как удаление, проверка пакетов, интеллектуальные обновления и т. Д.

Вы можете попробовать смешанный подход: нативные пакеты для самых популярных Linux, плюс бинарные тарболы для странных Linux и системные администраторы старой школы, которым по каким-либо причинам не нравятся менеджеры пакетов.

Уоррен Янг
источник
Это почти именно тот подход, который я использовал до сих пор - он начался с RPM для Redhat / Fedora / CentOS, теперь он предоставляет файлы Ubuntu / Debian .deb, но еще не решил, будет ли создание tar.gz все еще полезным и необходимым. Похоже, это было бы хорошо, если бы пользователи с менее популярными дистрибутивами могли по крайней мере заставить программное обеспечение работать самостоятельно, а не иметь опцию. Спасибо.
Майк Грей
2
Создание переносимого бинарного архива может потребовать гораздо больше усилий, чем вы думаете. Единственная потенциальная ловушка заключается в том, что ABI g ++ несколько раз менялся за последние годы, поэтому вам, возможно, придется поставлять двоичные версии любых используемых вами библиотек C ++, а не использовать версии платформы для достижения достаточно широкой совместимости. Это одна из причин, по которой один двоичный RPM не устанавливается и не запускается везде. Просто кажется, что в RPM этот факт принят культурно, хотя тарболлы - вероятно, потому что они являются древним стандартом - должны работать везде.
Уоррен Янг
Я видел, что смешанный подход - лучший: вы можете охватить много людей, и усилия не так уж и велики.
Хьюго
Создание простого бинарного архива все еще хорошо. Особенно, если этот tarball хранит все файлы игры в одном автономном каталоге. Это позволит некоторым пользователям распаковать и запустить его без установки; и это также облегчит жизнь другим дистрибутивам (таким как Gentoo, Arch и т. д.), потому что им будет проще распаковать / перепаковать этот tarball.
Денилсон Са Майя
4

Что бы вы ни делали, убедитесь, что вы включили «сценарий поддержки», который позволяет вам собирать как можно больше информации в целевой системе для устранения ошибок. Я гарантирую, что вы столкнетесь с проблемами и отладкой того, что клиент говорит, что реальность часто сильно отличается.

vwduder
источник
0

Я всегда предпочитаю пакет (rpm | deb и т. Д.). В зависимости от характера программного обеспечения может быть целесообразно ориентироваться на пакеты для определенных дистрибутивов (rhel / centos и т. Д.), Но вы, вероятно, никогда не сможете собрать достаточно пакетов для всех.

Установить скрипты можно, в зависимости от скрипта. Для меня самая важная вещь с неупакованным программным обеспечением - то, что легко установить это в месте, которое я выбираю.

theotherreceive
источник
0

В играх, как правило, используется установщик (ранее Loki Installer, в настоящее время MojoSetup), который четко устанавливает игру в префикс и обрабатывает такие вещи, как значки.

directhex
источник