一个SPEC文件可支持多种体系结构

时间:2019-04-08 17:48:14

标签: rpm rpm-spec

我正在修改RPM SPEC文件以针对x86_64体系结构进行构建。现有的SPEC包括仅适用于32位的软件包,即Requires: package-x-y-z。如何删除x86_64体系结构的package-x-y-z要求 just ,同时仍然要求其他OS使用它?

我尝试在%ifnarch x86_64行之前使用Requires: package x-y-z,但未成功。

我可以制作单独的SPEC文件,但是理想情况下,这个SPEC文件可以支持两种体系结构,以实现更好的可维护性。

1 个答案:

答案 0 :(得分:1)

您是否也在规范文件中同时使用了BuildArch

我刚刚在带有规格文件的 x86_64 构建机器上对此进行了测试,

BuildArch: noarch

乃至

%ifnarch x86_64
Requires: package-x-y-z
%endif

生产了一个确实需要package-x-y-z ......的包裹...

由于我的spec文件生成一个noarch包,因此我尝试更改逻辑;和

%ifnarch noarch
Requires: package-x-y-z
%endif

产生了一个依赖于package-x-y-z的软件包。

结论

如果您使用 BuildArch ,则宏ifarchifnarch将与该架构而不是您的实际构建机器架构匹配。