2012-03-04 92 views
0

我使用rpmbuild自動執行RPM程序包構建。這些文件最終在RPMS下的體系結構子目錄中。檢索RPM的當前體系結構

問題 - 如何從shell腳本中檢索RPM正在使用的主機的體系結構名稱?這與arch命令不一樣。

回答

1

/usr/lib/rpm/rpmrc將已知的操作系統級別的體系結構名稱轉換爲規範的RPM體系結構名稱。以下shell腳本爲我完成這項工作:

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

按照慣例,該體系結構也是生成的文件名的一部分。我想這樣。所以我寧願檢索體系結構,而不改變文件名格式。 – 2012-03-04 21:20:51