如何在 RHEL 8 上安装多架构软件包

如何在 RHEL 8 上安装多架构软件包

在 x86_64 Ubuntu 20.04 系统上,在/etc/apt和 running下进行一些小的修改后dpkg --add-architecture s390x,我可以安装该foo-dev:s390x包并安装该gcc-8-s390x-linux-gnu包,然后我可以针对该包交叉编译软件foo-devarm64、等架构也是如此ppc64le。我构建的二进制文件可以接管到其他架构上的 Ubuntu 20.04 平台,并且它们可以按预期运行。

鉴于 RHEL 8 也在这些架构上运行,我希望我也能做同样的事情。它看起来确实是一个支持多架构的操作系统。例如,有 32 位和 64 位 x86 软件包,例如openssl-devel

openssl-devel.x86_64 : Files for development of applications which will use OpenSSL
openssl-devel.i686 : Files for development of applications which will use OpenSSL

并且它们可以同时安装。所以我希望它会像一样简单yum install openssl-devel.arm64或相似。

但经过相当长的一段时间搜索后,我无法弄清楚我需要做什么才能允许在 RHEL 8 上安装s390xppc6el4、等的开发包或交叉编译器。arm64

这可能吗?是否有一些文档解释了如何进行必要的存储库配置以启用这些其他架构作为开发目标?有人可以提供必要的yum//或相关命令来启用软件包安装吗dnfrpm

答案1

RPM 有一个“兼容”架构的概念,它允许您i686在系统上安装软件包x86_64。但它不涵盖外部体系结构,也不允许您进行超出gcc -m.

但是,可以使用qemu-user-static和为外部架构构建包mock:准备源 RPM,然后构建它使用mock,指定架构

mock -r fedora-35-aarch64 package.src.rpm

mock将检测到它需要使用仿真,并将使用 QEMU 来处理 chroot。这通常会比交叉编译慢,但您不会遇到主机与目标二进制文件的问题。

相关内容