2012-03-04 13 views
0

私はrpmbuildでRPMパッケージ構築を自動化しています。ファイルは、RPMSの下のarchitectureサブディレクトリにあります。RPMの現在のアーキテクチャを取得

質問 - RPMが使用しているホストのアーキテクチャ名をシェルスクリプトから取得するにはどうすればよいですか? archコマンドと同じではありません。

答えて

1

既知のOSレベルのアーキテクチャ名を標準的なRPMアーキテクチャ名に変換する/usr/lib/rpm/rpmrcがあります。次のシェルスクリプトは、私の仕事です。

ARCH=`arch` 
# OS-level architecture name, like 'i686' 

ARCH=`cat /usr/lib/rpm/rpmrc | grep "buildarchtranslate: $ARCH" | cut -c21-` 
# returns the translate line as "arch-from: arch-to" 

ARCH=${ARCH/#*: /} 
# strips the prefix up to colon and following space, returns arch-to. 
# Assumes just one space after colon. If not, more regex magic is needed. 
0

あなたは間違っています。 〜_/.rpmmacrosの%_build_name_fmtを再定義してください。

+0

このアーキテクチャは、生成されたファイル名の一部でもあり、慣習的に使用されています。そして私はそれをそのようにしたい。ですから、ファイル名の形式を変更するよりもむしろアーキテクチャを取得したいと思います。 –