我正在为 Red Hat Enterprise Linux 创建 RPM 包。我的软件在 RHEL 7 和 8 上运行时需要“redhat-lsb”软件包,但在 RHEL 9 上不需要它。此外,该软件包甚至无法从 RHEL 9 存储库中获得。
如果我将该软件包包含在一行中Requires:
,则软件包在 RHEL9 上安装将失败。
如果我将该Requires
行放入条件表达式中,如下所示:
%if 0%{?rhel} <= 8
Requires: redhat-lsb
%endif
然后在构建时评估条件,并且因为我在 RHEL7 上构建,所以生成的包始终具有依赖性。
是否有一种自动化方法可以在安装时使依赖关系以操作系统版本为条件?如果不是,解决问题的最佳方法是什么?如果我不将其添加到Requires:
列表中,那么是否必须手动安装?
例如,我可以将要求设为可选吗?