Linux发行二进制兼容性

Hos*_*osi 23 linux distribution binary-compatibility

有什么办法在Linux发行版中制作二进制文件并在具有相同架构的另一个发行版上运行它?或者我应该在不同的发行版上编译和构建它?

Redhat,基于Debian的二进制文件发行版之间是否有任何兼容性?(我想在fedora上使用我的Ubuntu二进制文件!)

Die*_*ano 18

输入Linux Standard Base以减少各个Linux发行版之间的差异.看到

  • [Linux AppChecker](http://ldn.linuxfoundation.org/lsb/check-your-app)工具基于**LSB**,可以检查您的应用程序是否与许多Linux发行版兼容,如RedHat,Debian,SUSE和其他. (2认同)
  • @techtonik,替代链接是http://www.linuxfoundation.org/collaborate/workgroups/lsb/all-about-linux-application-checker (2认同)

Mar*_*rkR 10

静态链接您的二进制文件使它们不可移植,因为某些库将无法正常工作(不同的身份验证方法等).

如果您静态链接任何"异常"库并将支持的发行版集保持在最低限度,那么您应该没问题.

不要静态链接C库(或整个二进制文件),这是一个麻烦的配方:)

看看谷歌(Google)做什么(例如).


小智 6

您的应用程序编码的语言是什么?如果它使用Python,(并且没有C绑定)或Java或任何其他基于VM的语言,那么我认为您可以信任VM以确保您的应用程序可以在不同的Linux发行版上运行.

此外,还有可以参考的Linux标准库.

HTH,阿米特


hen*_*gda 5

我意识到这是一个非常古老的问题,但它在搜索结果中占据了很高的位置并且没有提到:

CDE是一种用于创建可移植Linux应用程序的工具.此工具通过在运行时分析将所有需要的文件(包括库)打包在一起.我已经多次在命令行工具上成功使用它,一个例子是让tcpdump在运行自定义发行版的旧硬件设备上运行.CDE也不需要源代码,它只是打包一个你能运行的可执行文件.

有一次我运行cde命令时出错,这是通过在命令前加上修复的LD_ASSUME_KERNEL=2.4.1,在最近的版本中可能没有必要,因为它已经过了几年.

代码也在GitHub上:https://github.com/pgbovine/CDE