RPM Spec文件条件需要每次分发后构建

时间:2016-05-03 15:10:33

标签: rpmbuild rpm-spec

我想构建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的名称与Required软件包不同。

知道我该怎么做吗?

由于

2 个答案:

答案 0 :(得分:0)

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

的一部分

答案 1 :(得分:0)

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)