我的要求是,如果 rpm 安装在任何情况下在客户端计算机上失败,我想在屏幕上打印一些消息。或者在屏幕上显示消息,例如由于任何生成的原因而导致 RPM 安装失败。就像其他标准 RPM 给出的那样。
而且我没有在我的 .spec 文件中制作任何 C 文件或 make 命令.我在规范文件本身.plz中所做的一切都建议如何使用规范文件在客户端控制台中打印此类内容。
是的,这不是我关心的问题 - 测试我只给出了 example.my 超出的要求低于规范文件内容。
#Pre-Uninstall section
%preun
Processes=`ps -Ao"%p:%a" --cols 150 |
egrep "Launcher|rmiregistry" | grep -v grep | cut -d ":" -f1`
if [ -n "$Processes" ]; then
echo 'xyz is running ,first stop it then uninstall.' > /dev/stderr;
exit 1;
else
echo 'xyz service is not running' >/dev/stdout;
fi
然后我尝试使用命令卸载 rpm
rpm -ev xyz
输出:两条消息都根据服务状态打印。我希望如果客户端使用选项 -v 卸载,然后它在屏幕上显示消息,否则不会。我该怎么做?
到STDERR
将始终显示给客户端。 如果它们使用详细选项进行安装,则会显示STDOUT
。
echo 'Something may be wrong!' > /dev/stderr
您可以定义%pre
、%post
、%preun
和%postun
部分。它们获取包的当前安装数作为参数。看这里。
RPM 书籍的相应部分详细介绍了这些脚本。本质上,脚本在执行之前写入文件,然后运行。