如何根据 %pre scriptlet 的结果让我的 RPM 中止安装

Ish*_*eck 3 rpm specfile

我正在创建一个在系统上安装一些工具的 RPM 包。我想在安装我的 RPM 包之前检查一些机器状态。我最初的直觉是从%pre scriptlet 中运行一些命令,如果结果不是我喜欢的,则“退出 1”。但后来我遇到了这个说:

所有小脚本必须以零退出状态退出。

有没有其他方法可以让 RPM 根据 shell 命令的结果中止软件包的安装?

Mic*_*ton 6

在 scriptlet 中退出非零肯定会中止 pacakge 的安装,但这确实有副作用。您链接到的文档还讨论了让您的 scriptlet 以非零状态退出的含义。在尝试实施之前,您应该仔细阅读并理解这一点。

如果不是绝对有必要中止脚本中的安装,则不应这样做。

例如,如果安装该软件包不会损害系统,但该软件包中的程序根本无法运行,则应允许继续进行安装,并在其他地方做出安装该软件包的决定。您的配置管理系统是实现此目的的理想场所。