我正在创建自己的rpm文件。现在我正在编写一个bash脚本,将这些rpm自动放入存储库结构中:
distribution/arch/rpm
例如:
openSUSE13.1/i586/product-0.1.0-0.i586.rpm
我发现在/etc/os-release
文件中我可以找到我所拥有的发行版的名称等;但不是我的建筑。那么我如何获得计算机的架构?我知道我最终可以从rpm名称解析它(看起来像这样:product-0.1.0-0.i586.rpm
),但是可能有一些描述我的计算机体系结构的文件会轻易地给我i586
吗?
编辑我生产的rpm的名字中有i586架构。但是:
uname -m
给了我i686 uname -i
给了我i386 答案 0 :(得分:0)
感谢Jord我在文件/usr/lib/rpm/rpmrc
中找到了这一行:
buildarchtranslate: i686: i586
显然,rpmbuild是从我的" uname -m"进行翻译的。架构i686到i586。所以理论上可以使用uname -m并在rpmrc文件中查找转换,但这将非常费力。
简而言之 解析生成的rpm的名称是获得体系结构的最有效方法。似乎没有定义与rpmbuild生成的宏或变量匹配的宏或变量(因为包含了转换步骤)