RHEL 8にマルチアーキテクチャパッケージをインストールする方法

RHEL 8にマルチアーキテクチャパッケージをインストールする方法

x86_64 Ubuntu 20.04システムで/etc/apt少し変更を加えて実行したら、パッケージをインストールしてパッケージdpkg --add-architecture s390xのソフトウェアをクロスコンパイルできます。、そして他の構造も同じです。私が構築したバイナリは、他のアーキテクチャのUbuntu 20.04プラットフォームに引き継がれ、期待どおりに実行されます。foo-dev:s390xgcc-8-s390x-linux-gnufoo-devarm64ppc64le

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では、などの開発パッケージまたはクロスコンパイラのインストールを許可するために何をすべきかわかりませs390xppc6el4arm64

可能ですか?このような他のアーキテクチャを開発ターゲットとして有効にするために必要なストレージ構成を実行する方法を説明する文書はありますか?誰かがパッケージのインストールを有効にするために必要なyum//または関連コマンドを提供できますかdnfrpm

答え1

i686RPMには、システムにパッケージをインストールできる「互換性」アーキテクチャの概念がありますx86_64。しかし、外部アーキテクチャは扱いませんgcc -m

qemu-user-staticただし、外部アーキテクチャ用のパッケージを使用してビルドすることは可能ですmock。ソースRPMを準備してビルドします。使用mock、スキーマの指定:

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

mockエミュレーションが必要であることを検出し、QEMUを使用してchrootを処理します。これは通常クロスコンパイルよりも遅いですが、ホストとターゲットのバイナリの問題は発生しません。

関連情報