我知道这个问题可能被问了一百万次,但是没有一个问题可以通过实际应用的方法得到答案,也没有人能解释我要展示的内容。
所以,问题来了:有许多软件供应商提供了适用于所有 Linux 发行版的单一软件包,当我说全部时,我指的至少是主要的(Debian、Redhat 和 Arch)。我试过了,它们都有效。
我的问题是:他们是怎么做到的?
我所知道的:我知道关于二进制不兼容的旧消息。请不要重复那个讲座。任何想从这个问题及其答案中受益的人,如果您从未听说过它,请阅读有关 Linux 发行版的二进制不兼容性的更多信息。我问这个问题的原因是因为我们有一个实际应用程序忽略了这种不兼容性并且适用于几乎所有发行版。这是怎么回事?
我也知道名为LSB的“谣言” 。我称之为谣言的原因是,我从未在任何地方看到过该东西的单一应用程序,如果这是这些供应商的做法,请在答案中解释如何。
(几乎)无处不在的软件示例:
- Qt Creator,适用于许多操作系统。它只是一个
.run
在任何地方都可以使用的文件。 - Mathematica,它提供了一个可以在任何地方工作的单一
.sh
包。以下是他们下载页面的截图。
(随时添加更多)。
那么这是怎么回事呢?我怎样才能为我自己的应用程序实现这一点?
一个令人满意的答案将提供一种机制(最好是一个迷你示例),其中一个人可以选择几个 Linux 发行版(比如 Debian、CentOS 和 OpenSUSE),并拥有创建一个可以在所有发行版上运行/安装的单个包的配方.
非常感谢您的任何努力。