2

我的要求是,如果 rpm 安装在任何情况下在客户端机器上失败,我想在屏幕上打印一些消息。或者由于任何生成的原因,在屏幕上显示消息,如 rpm 安装失败。就像其他标准 rpm 给出的那样。

而且我没有在我的 .spec 文件中制作任何 c 文件或 make 命令。我在规范文件本身中所做的一切。请建议如何使用规范文件在客户端控制台中打印这种类型的东西。


是的,这不是我关心的——测试我只给出了示例。我的 excet 要求低于规范文件内容。

#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卸载然后它会在屏幕上显示消息,否则不会。我怎样才能做到这一点?

4

2 回答 2

3

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

echo 'Something may be wrong!' > /dev/stderr
于 2012-12-04T09:59:07.517 回答
-1

您可以定义%pre%post%preun部分%postun。他们将包的当前安装数量作为参数。见这里

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

于 2012-12-04T08:48:49.577 回答