RPM 规范文件有条件地需要每个分发后构建

RPM Spec file conditional Requires per distribution AFTER build

我想构建 RPM 文件,我希望它们被普遍使用,并且不依赖于安装的发行版。 现在我发现了一个在 RHEL 和 SLES 上名称不同的需求。 我发现这是可能的解决方案:

%if 0%{?suse_version}
 Requires:       jdk >= 2000:1.8.0_00-fcs, netcat, telnet, at
%else
 Requires:       jdk >= 2000:1.8.0_00-fcs, nc, telnet, at
%endif

但我的问题是,它是构建过程的 if 查询,我希望拥有的取决于我安装的发行版,已经构建的 rpm 文件可以解决这个问题。 因为使用这个解决方案,我需要为所有这些不同的操作系统上的每一种 centos 和 rhel 和 sles 发行版构建 RPM 文件,而只有 nc 和 netcat 的名称与必需的包不同。

知道我该怎么做吗?

谢谢

您无法在安装时执行您要求的操作。但是,您可以要求可执行文件本身,例如/bin/netcat 它应该可以工作...除非它是伟大 UsrMove...

的一部分

rpm-4.13 将解决我的问题:http://www.rpm.org/wiki/PackagerDocs/BooleanDependencies

or - requires one of the operands to be fulfilled
Requires: (pkgA >= 3.2 or pkgB)