如何在rpm spec文件中检查RedHat(RHEL)次要版本?

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

需要区分RHEL 7.2 / 7.3 v / s RHEL 7.4及更高版本之间的软件包依赖性。在rpm规范文件中有rhel宏,但对于所有RHEL 7.x,所有RHEL 6.x版本的评估结果为7。

我可以阅读/etc/redhat-release文件并确定%pre部分中的次要版本,但不清楚使用Requires指令指定包依赖是否为时已晚。

我尝试定义一个读取/etc/redhat-release文件的宏,然后像下面一样使用宏

%define rhel_minor_version %(rhel_version_file="/etc/redhat-release";
if [ -f $rhel_version_file ]; then echo $(cat $rhel_version_file |
grep -oP '.*7\.\K([0-9]+)'); else echo 0; fi)

%if 0%{?rhel} == 7
%if 0%{?rhel_minor_version} >= 4
Requires: iperf3
%endif
%endif

但是,在调用rpmbuild来构建rpm包而不是安装rpm包的系统的系统上评估此宏。所以不起作用。

rpmbuild rpm-spec
1个回答
0
投票

有一种机制可以指定弱依赖性,即rpm规范文件中的可选依赖性。这样,如果包可用,它将被安装,否则将忽略依赖。 https://rpm.org/user_doc/dependencies.html

“推荐”指令在Fedora上显示有效,但在RHEL https://bugzilla.redhat.com/show_bug.cgi?id=1427674上不可用

经过深思熟虑后,我不认为可以根据RHEL次要版本来区分依赖关系,而无需为RHEL 7.2 / 7.3 v / s RHEL 7.4+提供不同的el7软件包,这不是一个选项......

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