私はかなり大きくて古い産業用ソフトウェアのビルドシステムに取り組んでいます。ビルドの結果、約20 rpmが出力されます(rpmbuildを使用してゼロからビルド、setup.pyを介してゼロからビルド、パッチを適用してsrc.rpmsを再ビルド)。
異なるマシン(すべてのCentos 6.4および6.9)でビルドを実行すると、パッケージの最終的なアーキテクチャに関して一貫性のない結果が生成されます。 1台のマシンがすべてのi386パッケージを吐き出します。他のマシンでは、一部のパッケージはi386で提供され、一部のパッケージはi686で提供されます。結果はどのマシンでも一貫していますが、異なるマシン間では一貫していません。
私の質問は:
rpmbuildがi386パッケージとi686パッケージのどちらを生成するかを制御する要因は何ですか?
承認された回答:
生成されたアーキテクチャを制御するいくつかの要因があります。
1)「spec」ファイルでは、各パッケージをBuildArch
で構成できます。 特定のアーチのあるフィールド。
2)「spec」ファイルのパッケージにBuildArch
がない場合 フィールドの場合、ビルドパッケージにはターゲットビルドシステムアーキテクチャが含まれます。
3)古いバージョンのrpm
コマンドには--buildarch <arch>
がありました アーチを定義したオプション。