x86_64 Ubuntu 20.04システムで/etc/apt
少し変更を加えて実行したら、パッケージをインストールしてパッケージdpkg --add-architecture s390x
のソフトウェアをクロスコンパイルできます。、そして他の構造も同じです。私が構築したバイナリは、他のアーキテクチャのUbuntu 20.04プラットフォームに引き継がれ、期待どおりに実行されます。foo-dev:s390x
gcc-8-s390x-linux-gnu
foo-dev
arm64
ppc64le
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
答え1
i686
RPMには、システムにパッケージをインストールできる「互換性」アーキテクチャの概念がありますx86_64
。しかし、外部アーキテクチャは扱いませんgcc -m
。
qemu-user-static
ただし、外部アーキテクチャ用のパッケージを使用してビルドすることは可能ですmock
。ソースRPMを準備してビルドします。使用mock
、スキーマの指定:
mock -r fedora-35-aarch64 package.src.rpm
mock
エミュレーションが必要であることを検出し、QEMUを使用してchrootを処理します。これは通常クロスコンパイルよりも遅いですが、ホストとターゲットのバイナリの問題は発生しません。