
Исходный код не является открытым или бесплатным, поэтому компиляция при установке невозможна. До сих пор я видел разработчиков, которые:
- предоставить файл tar.gz, который пользователь может распаковать в удобном месте.
- предоставить .tar.gz со скриптом install.sh для запуска базового установщика, возможно, даже запрашивая у пользователя параметры установки.
- предоставляют файлы RPM и/или deb, позволяя пользователю продолжать использовать привычные ему собственные инструменты управления пакетами для установки/обновления/удаления.
Хотелось бы поддерживать как можно большее количество дистрибутивов Linux, максимально облегчить жизнь пользователей и при этом поддерживать как можно меньше инфраструктуры сборки/упаковки/установки.
Ищу рекомендации по упаковке моего программного обеспечения.
решение1
Я вижу два способа взглянуть на это.
Один из них — нацеливаться на самые популярные Linux, предоставляя собственные пакеты для каждого, поставляя пакеты в порядке популярности. Несколько лет назад это означало предоставление RPM для Linux типа Red Hat в первую очередь, а затем, когда позволяло время, пересборку исходного RPM для каждого менее популярного Linux на основе RPM. Вот почему, скажем, Mandriva RPM часто немного старше, чем Red Hat или SuSE RPM. Однако, учитывая популярность Ubuntu в последние несколько лет, вы можете начать с .deb и добавить RPM позже.
Другой способ — попытаться нацелитьсявсеLinuxes сразу, что и пытаются сделать те, кто предоставляет бинарные tarballs. Мне очень не нравится этот вариант, как системному администратору и конечному пользователю. Такие tarballs разбрасывают файлы по всей системе, в которую вы их распаковываете, и нет возможности позже для таких тонкостей, как удаление, проверка пакетов, интеллектуальные обновления и т. д.
Вы можете попробовать смешанный подход: собственные пакеты для самых популярных Linux-систем, а также бинарные tar-архивы для необычных Linux-систем и системных администраторов старой школы, которым по какой-либо причине не нравятся менеджеры пакетов.
решение2
Я всегда отдаю предпочтение пакету (rpm|deb и т. д.). В зависимости от характера программного обеспечения может быть целесообразно нацелить пакеты на определенные дистрибутивы (rhel/centos и т. д.), но вы, вероятно, никогда не сможете выпустить достаточно пакетов для всех.
Скрипты установки могут быть приемлемыми, в зависимости от скрипта. Для меня самое важное в неупакованном программном обеспечении — это то, что его легко установить в выбранном мной месте.
решение3
Игры, как правило, используют установщик (ранее Loki Installer, сейчас MojoSetup), который устанавливает игру чисто в префикс и обрабатывает такие вещи, как значки.