由于 spec 文件错误导致 rpm 运行时错误

由于 spec 文件错误导致 rpm 运行时错误

我有一个基于 SLES 版本的 spec 文件,我需要更改“Requires:”标签,如下所示

#if suse is greated than SLES 11 sp4
%if %0{?suse_version} > 1140 
Requires: genisoimage
%else 
Requires: mkisofs 
%endif

我正在 SLES 10 机器上构建此 rpm 文件。生成 RPM 后,无论操作系统如何,如果我运行,

rpm -qpR mypkg.rpm

我仅将 mkisofs 作为必需包获取。在任何情况下(即使在 SLES 12 上),我都将 genisoimage 作为依赖包获取。

可能缺少什么以及如何修复。

答案1

这不是它的工作原理。此变量是在构建时评估的,而不是在安装时评估的。

此宏扩展到 SUSE Linux / openSUSE 版本软件包的构建位置对于 SUSE Linux 10.0 来说则是“1000”,对于 openSUSE 10.2 来说则是“1020”,以此类推。

强调我的,来源

此外,据我所知,这个变量仅指 OpenSUSE 版本,而不是 SLES 基本版本和 SP,所以在 SLES 10 机器上构建时它根本不会出现。

相关内容