我想构建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软件包不同。
知道我该怎么做吗?
由于
答案 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)