我正在修改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文件可以支持两种体系结构,以实现更好的可维护性。
答案 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 ,则宏ifarch
和ifnarch
将与该架构而不是您的实际构建机器架构匹配。