Con*_*zen 10 ubuntu centos binary
我正在尝试安装在 CentOS 4.7 上构建的软件。你知道它是否也能在 Ubuntu 中运行吗?我读过 CentOS 是 100% 二进制兼容的。最新版本的 Ubuntu 也是如此吗?
Gil*_*il' 16
如果其他发行版具有所需的共享库,则为 Linux 发行版编译的可执行文件将适用于另一个发行版。CentOS 有很旧的库版本,所以 Ubuntu 的版本可能太新了;但往往当Ubuntu的只有libfoo5和libfoo6你需要libfoo3,你可以从较早版本的Ubuntu抓住它。
CentOS 和 Ubuntu 使用不同的打包系统:rpm 与 deb。您可以使用 .rpm 将 rpm 转换为 deb alien。根据您是否具有所需的依赖项,生成的包可能会或可能不会安装。将 rpm 转换为普通存档(再次使用alien)并将其解压缩到/opt或下的单独目录中可能更容易/usr/local。
如果程序没有附带依赖项列表,您可以运行ldd /path/to/binary以查看它需要哪些库。您会看到输出,就像libfoo.so.4 => not found缺少某些东西一样。
Cal*_*leb 12
CentOS的是“100%的二进制兼容”与它的商业对手,红帽企业版Linux。因为RHEL是一个许可系统,包括支持合同和各种企业的东西,并不是每个人都想运行它。然而,在开源世界中,所有开发都必须共享,因此虽然他们对支持合同、媒体等收费,但他们仍然必须共享源代码。CentOS是对它的重新包装,免费提供给社区。
此外,然后“100%兼容性”只是之间等效版本的RHEL和CentOS的。库版本随每个主要版本而变化,但由于这些项目是同步发布的,您可以在它们之间交换包,只要它们都设置为相同的主要版本。
发行版之间的差异,尤其是基于 RPM 的发行版(如CentOS)和基于 Debian的发行版(如Ubuntu)之间的差异可能很大,并且给定的软件包在它们之间无法移植。然而,整个系统大致相同,为一个开发的软件通常可以很容易地为另一个编译,只需稍微不同地编译和打包即可。如果您想引入所有正确的库版本,则其中一个的二进制文件实际上可以在另一个版本上运行。见吉尔斯的回答。