Rhel
如何在 RHEL 8 上安裝多架構包
在 x86_64 Ubuntu 20.04 系統上,經過一些小的修改
/etc/apt
並執行dpkg --add-architecture s390x
,我可以安裝foo-dev:s390x
包和gcc-8-s390x-linux-gnu
包,然後我可以針對包交叉編譯軟體foo-dev
。同上arm64
,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 上安裝開發包或交叉編譯器
s390x
,ppc6el4
,arm64
等。這可能嗎?是否有一些文件解釋瞭如何進行必要的儲存庫配置以使這些其他架構成為開發目標?有人可以提供必要的
yum
//dnf
或rpm
相關命令來啟用包安裝嗎?
RPM 有一個“兼容”架構的概念,它允許您
i686
在系統上安裝軟體包x86_64
。但它不涵蓋外國架構,也不允許您交叉編譯超出gcc -m
.但是,可以使用
qemu-user-static
和為外國架構建構包mock
:準備您的源 RPM,然後使用建構它mock
,指定架構:mock -r fedora-35-aarch64 package.src.rpm
mock
將檢測到它需要使用仿真,並使用 QEMU 來處理 chroot。這通常會比交叉編譯慢,但您不會遇到主機與目標二進製文件的問題。