RPM-Build - 如何在客户端的rpm安装时打印错误消息

时间:2012-12-04 08:34:19

标签: rpm rpmbuild rpm-spec sharpmap

我的要求是我想在屏幕上打印一些消息,如果在任何情况下客户端机器上的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

然后我尝试使用命令

卸载rpm
rpm -ev xyz

输出: 根据服务状态打印这两条消息。我希望如果客户端卸载选项-v然后它在屏幕上显示消息,否则不。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

始终会向客户显示打印到STDERR。如果他们使用详细选项安装,则会显示STDOUT

echo 'Something may be wrong!' > /dev/stderr

答案 1 :(得分:0)

您可以定义%pre%post%preun%postun部分。它们将包的当前安装数量作为参数。请参阅here

RPM书的相应部分详细介绍了这些脚本。本质上,脚本编写在执行之前写入文件然后运行。