首页 > 解决方案 > 如果某些条件未通过,则生成显示错误的 rpm

问题描述

我真正想做的是生成一个rpm,它在安装过程中检查一些条件,如果它没有通过,显示一些错误并退出安装。如何在规范文件中实现它?

%pre
if [ $RPM_INSTALL_PREFIX != "/opt" ]; then
echo " this place is not acceptable. this package will not install"
exit 0
fi

标签: rpmspecificationsrpmbuild

解决方案


在安装期间不需要进行这些检查,值——尤其是来自 rpm 构建配置的值——是完全可以预测的(恕我直言,YMMV)。

如果您需要对构建配置进行健全性检查,请改为添加逻辑以在构建期间检查值。在许多情况下,您也应该能够覆盖所需的构建配置。

例如,RPM_INSTALL_PREFIX 是从一个(实际上是多个,它是一个数组,而不是一个标量)设置的前缀:指令,除非在安装时被 --relocate 覆盖(这在实践中几乎不会发生)。添加 Prefix: 指令以覆盖,或在构建期间检查 %prefix 的值。


推荐阅读