我知道这个问题可能被提出了一百万次,但是没有一个问题能够解决实际应用的问题,也没有人能够解释我将要展示的内容。
所以,这里有个问题:有很多软件供应商提供了一个适用于所有Linux发行版的单一软件包,当我说完所有的时候,我的意思是至less是主要软件(Debian,Redhat和Arch)。 我尝试了他们,他们都工作。
我的问题是:他们如何做到这一点?
我所知道的:我知道关于二进制不兼容的旧消息。 请不要重复这个讲座。 任何想要从这个问题中获益的人,以及其中的答案,如果您从未听说过,请阅读有关Linux发行版的二进制不兼容性的更多信息。 我之所以问这个问题,是因为我们有一个实际的应用程序,忽略了这种不兼容性,几乎可以处理所有的分布。 这是怎么发生的?
我也知道有关LSB的“stream言”。 我之所以把它称为stream言,是因为我从来没有在任何地方看到过这样一个单一的应用程序,如果这些供应商这样做,请解释如何在答案。
(几乎)无处不在的软件示例:
.run
文件。 .sh
包。 以下是他们的下载页面的截图。 (随意添加更多)。
那么这是怎么发生的? 我怎么能把这个closures我自己的应用程序?
一个令人满意的答案将提供一个机制(最好用一个小例子),可以select几个Linux发行版(比如Debian,CentOS和OpenSUSE),并且可以创build一个单独的包,在所有这些包上运行/安装。
非常感谢你的努力。
您所指的软件包…“.run”或“.sh”只是脚本。 由于人们往往希望“只是开始安装”,并可以点击错误的包,一个shell脚本可以检测到什么样的包是合适的,下载并安装它。
或者甚至可能下载和构建源代码…有点取决于包的项目和目标。
你有没有考虑使用appimage或flatpak打包你的应用程序?
这些是您可以创建现成的应用程序的一些方法。 我已经使用了这种方式打包的一些应用程序,他们在ubunut,Fedora和其他Linux发行版中开箱即用。