Я знаю, что этот вопрос, вероятно, задавался миллион раз, но ни на один из вопросов нет ответа с практическим применением, и никто не может объяснить, что я собираюсь показать.
Итак, вот проблема: есть много поставщиков программного обеспечения, которые предоставляют единый пакет, который работает во всех дистрибутивах Linux, и когда я говорю все, я имею в виду, по крайней мере, основные (Debian, Redhat и Arch). Я попробовал их, и все они работают.
Мой вопрос: Как они это делают?
Что я знаю: Я знаю старые новости о бинарной несовместимости. Пожалуйста, не повторяйте эту лекцию. Любой, кто хочет получить пользу от этого вопроса и ответов на него, пожалуйста, прочитайте больше о бинарной несовместимости дистрибутивов Linux, если вы никогда не слышали об этом. Причина, по которой я задаю этот вопрос, заключается в том, что у нас есть практическое приложение, которое игнорирует эту несовместимость и работает практически во всех дистрибутивах. Как это происходит?
Я тоже знаю про «слух» под названием LSB. Причина, по которой я называю это слухами, заключается в том, что я нигде не видел ни одного приложения этой штуки, и если это так, как это делают поставщики, объясните, пожалуйста, как в ответе.
Примеры программного обеспечения, которое работает (почти) везде:
.run
файл, который работает везде..sh
пакет, который работает везде. Ниже приведен скриншот с их страницы загрузки.(не стесняйтесь добавлять больше).
Так как это происходит? Как я могу осуществить это для моих собственных приложений?
Удовлетворительный ответ предоставит механизм (и лучше всего мини-пример), в котором можно выбрать несколько дистрибутивов Linux (скажем, Debian, CentOS и OpenSUSE), и получить рецепт для создания единого пакета, который работает / устанавливается на всех них.
Большое спасибо за любые усилия.
Пакеты, на которые вы ссылаетесь … «.run» или «.sh» — это просто сценарии. Поскольку люди, как правило, хотят «просто начать установку» и могут щелкнуть по неправильному пакету, сценарий оболочки может определить, какой пакет подойдет, загрузить и установить его.
Или, возможно, даже скачать и собрать исходный код … в некоторой степени зависит от проекта и цели пакета.
Рассматривали ли вы упаковку своего приложения с помощью appimage или flatpak?
Вот некоторые из способов создания приложений, которые работают «из коробки». Я использовал некоторые приложения, упакованные таким образом, и они работают «из коробки» на ubunut, fedora и других дистрибутивах Linux.