我需要为 RH 的特定次要版本构建 RPM,以便它仅安装在该次要版本(例如 RHEL 6.4)上,而不安装在 RHEL 6.6 等其他次要版本上。
此外,当 rpm/yum 在不适合的平台(上例中的 RHEL 6.6)上安装此 pkg 时,安装应继续以安装其余的 pkg。
我查看了一下,/usr/lib/rpm/rpmrc
但找不到任何可以使用的东西。
答案1
使用 rpm%pre
脚本(参见http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html)您可以在rpm安装之前检查系统(例如/etc/redhat-release file
)。但我认为你除了让安装失败之外别无他法。
在不需要的系统上跳过安装的一种可能方法是构建 rpm,将已安装的文件放入临时文件夹中。然后%post
安装脚本可以检查系统版本,并在需要时将文件复制到正确的位置。您必须使用%preun
或脚本确保卸载也能正确运行%postun
。
答案2
您可以为您的 redhat-release 软件包添加一个 Requires: ,并指定特定版本,例如 6.4。
我会检查 redhat-release RPM 的所有元数据,看看哪些是合适的