我的要求是我想在屏幕上打印一些消息,如果在任何情况下客户端机器上的rpm安装失败。或者由于任何生成的原因,在rpm安装失败的屏幕上显示消息。就像其他标准rpm给出的那样。 / p>
我没有在我的.spec文件中创建任何c文件或make命令。我在spec文件本身所做的一切.plz建议如何使用spec文件在客户端控制台中打印这类东西。
是的,这不是我关注的问题 - 测试我只是举例。我的要求低于规格文件内容。
#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
然后我尝试使用命令
卸载rpmrpm -ev xyz
输出: 根据服务状态打印这两条消息。我希望如果客户端卸载选项-v然后它在屏幕上显示消息,否则不。我怎么能这样做?
答案 0 :(得分:2)
始终会向客户显示打印到STDERR
。如果他们使用详细选项安装,则会显示STDOUT
。
echo 'Something may be wrong!' > /dev/stderr
答案 1 :(得分:0)
您可以定义%pre
,%post
,%preun
和%postun
部分。它们将包的当前安装数量作为参数。请参阅here。
RPM书的相应部分详细介绍了这些脚本。本质上,脚本编写在执行之前写入文件然后运行。