【发布时间】:2021-04-29 05:24:29
【问题描述】:
我正在使用 rpmbuild 构建一个 rpm。已经构建的 rpm 将安装在 rhel6、rhel7 或 rhel8 机器上。在 rhel8 上,需要一些其他发行版本(rhel6 和 rhel7)中不需要的依赖项。 在包的名称上使用条件(如下)不是一种选择。
Requires: (pkgA >= 3.2 or pkgB)
我想在规范文件中做的是:
%if %{VERSIONMAJOS} < 8
Requires: sssd >= 1.15 , sudo >= 1.8.6p3
%else
Requires: sssd >= 1.15 , sudo , oddjob , oddjob-mkhomedir
%endif
如何定义变量 VERSIONMAJOS?
我不能使用宏 %{rhel}(如此处所示 https://unix.stackexchange.com/questions/9296/how-can-i-specify-os-conditional-build-requirements-in-an-rpm-spec-file),因为该变量是在构建 rpm 期间定义的(如果我正确理解 DistTag 页面 https://fedoraproject.org/wiki/Packaging:DistTag)。
当我在 rhel6、rhel7 或 rhel8 上使用命令 yum -y nameOfRmp.rpm 时,我需要的是不同的库要求。
【问题讨论】:
标签: dependencies dependency-management yum rpmbuild rpm-spec