我知道这个问题可能被问到了一百万次,但没有一个问题能得到一个如何实际应用的答案,没有人可以解释我将要展示的内容.
所以,问题在于:有许多软件供应商提供适用于所有Linux发行版的单一软件包,当我说完所有时,我的意思是至少主要的(Debian,Redhat和Arch).我试过了,他们都工作了.
我的问题是:他们是怎么做到的?
我所知道的:我知道有关二进制不兼容的旧闻.请不要重复那个讲座.任何想要从这个问题及其答案中受益的人,如果您从未听说过,请阅读有关Linux发行版的二进制不兼容性的更多信息.我问这个问题的原因是因为我们有一个实际的应用程序忽略了这种不兼容性,几乎适用于所有的发行版.这是怎么回事?
我也知道称为LSB的“谣言”.我之所以称之为谣言,是因为我从未在任何地方看到过这种东西的单一应用,如果它是这些供应商的方式,请解释如何回答.
适用于(几乎)无处不在的软件示例:
> Qt Creator,适用于许多操作系统.它只是一个可以在任何地方使用的.run文件.
> Mathematica,它提供了一个可以在任何地方使用的单个.sh软件包.以下是其下载页面的屏幕截图.
(随意添加更多).
那怎么回事?如何为我自己的应用程序解决此问题?
一个令人满意的答案将提供一种机制(最好用一个小例子),人们可以选择一些Linux发行版(比如Debian,CentOS和OpenSUSE),并且可以创建一个工作/安装所有这些的软件包. .
非常感谢您的任何努力.
解决方法:
您所指的包……“.run”或“.sh”只是脚本.由于人们倾向于“只是开始安装”并且可能会点击错误的包,因此shell脚本可以检测适当的包,下载并安装它.
或者甚至可能下载和构建源...在某种程度上取决于项目和包的目标.
标签:c,linux,binary,compatibility,lsb
来源: https://codeday.me/bug/20190828/1755781.html