linux架构环境变量还是定义?

时间:2014-04-22 07:31:51

标签: linux bash architecture

我正在创建自己的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

1 个答案:

答案 0 :(得分:0)

感谢Jord我在文件/usr/lib/rpm/rpmrc中找到了这一行:

buildarchtranslate: i686: i586
显然,rpmbuild是从我的" uname -m"进行翻译的。架构i686到i586。所以理论上可以使用uname -m并在rpmrc文件中查找转换,但这将非常费力。

简而言之 解析生成的rpm的名称是获得体系结构的最有效方法。似乎没有定义与rpmbuild生成的宏或变量匹配的宏或变量(因为包含了转换步骤)