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)
我想构建 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)