如何在 64 位 CentOS 上安装 32 位软件包

如何在 64 位 CentOS 上安装 32 位软件包

我们有很多 32 位 CentOS 6 服务器,在我们自己的 RPM 存储库中为 i386 和 i686 架构构建了自定义 rpm。

我们现在有一些 64 位 CentOS 6 服务器,但希望能够从 32 位存储库安装 32 位软件包。

我知道 Debian 支持“多架构”,允许安装 32 位库和软件包。CentOS 的对应版本是什么?

答案1

所有主流存储库解决这个问题的方法是将相关的 32 位软件包复制到 64 位存储库中。仔细检查任何此类存储库(CentOS、Fedora 等)即可发现这一点。

因此,将所有 32 位软件包复制到 64 位仓库并重新运行后,createrepo --update ...您应该能够安装它们。由于这会占用大量空间,我建议硬链接它们,而不是复制它们。

CentOS 存储库软件包列表

答案2

在 yum.conf 中你会看到如下一行:

multilib_policy=best

更改为:

multilib_policy=all

这将允许 yum 安装 32 位软件包,而无需您专门指定 *.i686。

答案3

CentOS 支持多库。如果您的软件是 32 位的,并且是 rpm,您可以尝试使用 yum 安装。RPM 是否正确构建,并且您是否有权访问 CentOS yum 存储库,它应该能够满足任何 32 位依赖项(如果在存储库中可用)

如果您搜索 64 位 CentOS 存储库,您会发现列出了很多 32 位软件包。CentOS Wiki 摘录:

x86_64 installation by default will install iX86 32-bit packages on
a 64-bit installation for compatibility purposes.

相关内容