Создайте двоичные файлы, которые запускаются на & quot; всем & quot; Нарушение Linux

Я знаю, что этот вопрос, вероятно, задавался миллион раз, но ни на один из вопросов нет ответа с практическим применением, и никто не может объяснить, что я собираюсь показать.

Итак, вот проблема: есть много поставщиков программного обеспечения, которые предоставляют единый пакет, который работает во всех дистрибутивах Linux, и когда я говорю все, я имею в виду, по крайней мере, основные (Debian, Redhat и Arch). Я попробовал их, и все они работают.

Мой вопрос: Как они это делают?

Что я знаю: Я знаю старые новости о бинарной несовместимости. Пожалуйста, не повторяйте эту лекцию. Любой, кто хочет получить пользу от этого вопроса и ответов на него, пожалуйста, прочитайте больше о бинарной несовместимости дистрибутивов Linux, если вы никогда не слышали об этом. Причина, по которой я задаю этот вопрос, заключается в том, что у нас есть практическое приложение, которое игнорирует эту несовместимость и работает практически во всех дистрибутивах. Как это происходит?

Я тоже знаю про «слух» под названием LSB. Причина, по которой я называю это слухами, заключается в том, что я нигде не видел ни одного приложения этой штуки, и если это так, как это делают поставщики, объясните, пожалуйста, как в ответе.

Примеры программного обеспечения, которое работает (почти) везде:

  • Qt Creator, который работает на многих операционных системах. Это всего лишь один .run файл, который работает везде.
  • Mathematica, которая обеспечивает единый .sh пакет, который работает везде. Ниже приведен скриншот с их страницы загрузки.
    введите описание изображения здесь

(не стесняйтесь добавлять больше).

Так как это происходит? Как я могу осуществить это для моих собственных приложений?

Удовлетворительный ответ предоставит механизм (и лучше всего мини-пример), в котором можно выбрать несколько дистрибутивов Linux (скажем, Debian, CentOS и OpenSUSE), и получить рецепт для создания единого пакета, который работает / устанавливается на всех них.

Большое спасибо за любые усилия.

3

Решение

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

Или, возможно, даже скачать и собрать исходный код … в некоторой степени зависит от проекта и цели пакета.

4

Другие решения

Рассматривали ли вы упаковку своего приложения с помощью appimage или flatpak?

http://appimage.org/

http://flatpak.org/

Вот некоторые из способов создания приложений, которые работают «из коробки». Я использовал некоторые приложения, упакованные таким образом, и они работают «из коробки» на ubunut, fedora и других дистрибутивах Linux.

1

По вопросам рекламы [email protected]