私はソフトウェアをRPMでパッケージ化し、アーキテクチャ(32ビットまたは64ビット)ごとに別のパッケージに展開します。
私の32ビットパッケージの一部のライブラリには、64ビットシステムで実行できないバイナリがあります(他のライブラリがインストールされていない場合)。
私はfile
コマンドを使用して検出しました。通訳これらのバイナリを実行し、必要なライブラリをパッケージの依存関係として追加するために必要です。他の必須ライブラリがエンドユーザーホストにインストールされている64ビットバージョンと競合する可能性があるため、これは問題の一部のみを解決します。
そのため、64ビットシステムで32ビットパッケージのインストールを許可しないように設定する方法があるかどうか疑問に思いますrpmbuild
(32ビットシステムが64ビットパッケージのインストールを許可しないように)。 。
オプションがありますrpmbuild
か投機利用可能な値?
ベストアンサー1
これに対する回避策は必要ありません。デフォルトでは、rpmは構築中のアーキテクチャに合わせて構築されます。 64ビットシステムでビルドする場合、ビルドされたrpmの名前はpackage-version-releaseとして指定されます。x86_64したがって、.rpmは64ビットシステムにのみインストールできます。
また、rpmbuildはほとんどの依存関係を自動的に決定します(仕様ファイルでAutoreqprov = noを使用しない限り)。したがって、32ビットアプリケーションをパッケージ化するとき、rpmbuildは通常正しい要件(libc 32ビットなど)を生成する必要があります。
32ビットアプリケーションを構築し、64ビットシステムでパッケージングするときに実行できる唯一の作業は、生成されたパッケージを強制的に実行することです。i586仕様ファイルで使用できるスキーマ
BuildArch: i586