1

我正在使用rpmbuild. 这些文件最终位于RPMS.

问题 - 我如何从 shell 脚本中检索 RPM 正在使用的主机的体系结构名称?它与arch命令不同。

4

3 回答 3

2

看起来像

rpm --eval '%{_arch}'

诀窍:

$ rpm --eval '%{_arch}'
x86_64

$ rpm --target 'SPARC64' --eval '%{_arch}'
sparc64
于 2020-12-27T16:14:31.513 回答
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. 
于 2012-03-04T21:59:17.707 回答
0

你这样做是错的。在 ~/.rpmmacros 中重新定义 %_build_name_fmt。

于 2012-03-04T18:58:23.947 回答