Ubuntu vs. CentOS和二进制兼容性


Answers:


3

Linux标准库(LSB)二进制文件应该在支持LSB的发行版之间兼容。CentOS具有LSB支持。Ubuntu也提供LSB支持,但是我不知道默认情况下是否安装了相关的LSB软件包。可以测试应用程序是否二进制兼容。

请注意,无论标准本身还是它产生的影响或影响多少,LSB都是有争议的。


15

如果Linux发行版中编译的可执行文件具有所需的共享库,则该文件可以在其他发行版上工作。CentOS有相当老的库版本,因此Ubuntu的版本可能太新了。但是通常,如果Ubuntu仅具有libfoo5并且libfoo6您需要,libfoo3您可以从早期的Ubuntu版本中获取它。

CentOS和Ubuntu使用不同的打包系统:rpm与deb。您可以使用将rpm转换为deb alien。根据您是否具有所需的依赖关系,生成的软件包可能安装也可能无法安装。将rpm转换为普通存档(再次使用alien),然后将其解压缩到/opt或下的单独目录中可能会更容易/usr/local

如果该程序没有随附的依赖项列表,则可以运行ldd /path/to/binary以查看其需要的库。你会看到类似的输出libfoo.so.4 => not found,如果事情的缺失。


您如何使用“外星人”功能?在Gnome命令提示符下?
Concerned_Citizen

@GTyler是的,alien是一个命令行程序。我不知道周围是否有GUI。如果您不熟悉命令行,建议您尝试获取Ubuntu的二进制软件包。
吉尔(Gilles)“所以,别再邪恶了”,

12

CentOS的是“100%的二进制兼容” 与它的商业对手红帽企业版Linux。由于RHEL是一个包含支持合同和各种企业事务的许可系统,因此并非所有人都希望运行它。但是,在开源世界中,所有开发都必须共享,因此,尽管他们为支持合同,媒体等收取费用,但仍然必须共享源。CentOS对其进行了重新包装,以免费提供给社区。

而且,仅在等效版本RHELCentOS之间存在“ 100%兼容性” 。库版本随每个主要版本而变化,但是由于这些项目是同步发布的,因此您可以在它们之间交换包,只要它们都为相同的主要版本设置即可。

发行版之间的差异,尤其是基于RPM的发行版(如CentOS)和基于Debian 的发行版(如Ubuntu)之间的差异可能很大,而且给定的软件包将无法在它们之间移植。但是,整个系统大致相同,为一个开发的软件通常可以轻松为另一个开发,而编译和打包则有所不同。如果您希望引入所有正确的库版本,则一个库中的二进制文件实际上将在另一库中工作。参见Gilles的答案


0

CentOS长期稳定,因此它具有较旧的库,这些库在新系统上编译的二进制文件不会链接。CentOS使用rpm软件包管理器,而Ubuntu使用Debian apt。因此这些软件包甚至不兼容。

通常,如果您希望在CentOS上使用它,而现在还没有,则必须在另一台CentOS计算机上从源代码构建RPM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.