我正在修改RPM SPEC文件以构建x86_64架构。现有的SPEC包括仅适用于32位的包,即Requires: package-x-y-z
。如何仅针对x86_64架构删除package-x-y-z
要求,同时仍需要其他操作系统使用它?
我尝试在%ifnarch x86_64
线之前使用Requires: package x-y-z
但是没有成功。
我可以制作单独的SPEC文件,但理想情况下,这一个SPEC文件将支持这两种架构,以实现更好的可维护性。
你碰巧在你的spec文件中使用BuildArch
吗?
我刚刚在带有spec文件的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
将匹配该架构,而不是您真正的构建机器架构。