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

问题描述 投票:1回答:1

我正在修改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文件将支持这两种架构,以实现更好的可维护性。

rpm rpm-spec
1个回答
1
投票

你碰巧在你的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而不是宏ifarchifnarch将匹配该架构,而不是您真正的构建机器架构。

© www.soinside.com 2019 - 2024. All rights reserved.