![如何根据 %pre 脚本的结果让我的 RPM 中止安装](https://linux22.com/image/733677/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%20%25pre%20%E8%84%9A%E6%9C%AC%E7%9A%84%E7%BB%93%E6%9E%9C%E8%AE%A9%E6%88%91%E7%9A%84%20RPM%20%E4%B8%AD%E6%AD%A2%E5%AE%89%E8%A3%85.png)
我正在创建一个 RPM 包,用于在系统上安装一些工具。我想在安装 RPM 包之前检查一些机器状态。我的第一反应是直接在%前scriptlet,如果结果不是我想要的,则“退出 1”。但后来我遇到了这其中写道:
所有脚本必须以零退出状态退出。
是否有其他方法可以让 RPM 根据 shell 命令的结果中止软件包的安装?
答案1
在脚本中以非零状态退出肯定会中止软件包的安装,但这确实有副作用。您链接到的文档还讨论了以非零状态退出脚本的含义。在尝试实现这一点之前,您应该仔细阅读并理解这一点。
如果在脚本中没有绝对必要中止安装,则不应该这样做。
例如,如果安装软件包不会损害系统,但软件包中的程序无法运行,则应允许安装继续,并在其他地方决定是否安装软件包。您的配置管理系统是进行此操作的理想场所。