![如何在 64 位 CentOS 上安装 32 位软件包](https://linux22.com/image/612641/%E5%A6%82%E4%BD%95%E5%9C%A8%2064%20%E4%BD%8D%20CentOS%20%E4%B8%8A%E5%AE%89%E8%A3%85%2032%20%E4%BD%8D%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
我们有很多 32 位 CentOS 6 服务器,在我们自己的 RPM 存储库中为 i386 和 i686 架构构建了自定义 rpm。
我们现在有一些 64 位 CentOS 6 服务器,但希望能够从 32 位存储库安装 32 位软件包。
我知道 Debian 支持“多架构”,允许安装 32 位库和软件包。CentOS 的对应版本是什么?
答案1
所有主流存储库解决这个问题的方法是将相关的 32 位软件包复制到 64 位存储库中。仔细检查任何此类存储库(CentOS、Fedora 等)即可发现这一点。
因此,将所有 32 位软件包复制到 64 位仓库并重新运行后,createrepo --update ...
您应该能够安装它们。由于这会占用大量空间,我建议硬链接它们,而不是复制它们。
答案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.