2014-04-22 109 views
0

我正在創建我自己的rpm文件。現在我正在寫一個bash腳本,將在庫結構會自動把這些轉的:linux架構環境變量或定義?

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

不是答案,而是一些想法。在我的機器上,'/ usr/lib/rpm/macros'定義'%_arch'爲'x86_64';你也可以看看'--target'選項到'rpmbuild'。 – chepner

回答

0

感謝JORD我發現這行的文件/usr/lib/rpm/rpmrc在:

buildarchtranslate: i686: i586 

所以顯然它是的rpmbuild是從我的「uname -m」架構i686翻譯到i586。因此理論上可以使用uname -m並查看rpmrc文件進行翻譯,但這會非常費力。

簡而言之 解析生成的rpm的名稱是獲得該體系結構的最有效方式。似乎沒有定義與rpmbuild生成的宏或變量相匹配的宏或變量(因爲包含了轉換步驟)