在提取.rpm文件时获取返回值

时间:2014-04-03 05:48:15

标签: python shell rpm

我允许用户从我的网站上传.rpm文件 我在脚本文件中使用sudo rpm -ivh $1 --nodeps命令来提取名称作为参数传递的.rpm。我想检查刚刚上传并想要安装的文件用户是否已经存在于系统中,并在运行上述命令之前向用户显示正确的消息(或者是否有办法检查以便我的脚本返回值在此基础上我可以做出决定)..

命令的输出为
           Preparing... ########################################### [100%]
           package testing_rpm is already installed
它不会返回一些数值..

有没有办法(更好的方法)来做到这一点。

2 个答案:

答案 0 :(得分:2)

请参阅this answer

当一个或多个指定的操作失败时,

rpm会返回非零退出状态,因此如果您的系统上已经安装了软件包,那么1显然是rpm,这与无法安装一个软件包无法区分,你必须解析0命令的输出。如果软件包的安装成功,则应返回零退出代码{{1}}。

答案 1 :(得分:1)

如果您想查看与RPM关联的文件,请针对它运行rpm -qpl。这将为您提供rpm中包含的文件列表,而无需安装它。

这是针对tomcat rpm运行的命令,您可以在其中查看此软件包将安装的所有文件:

example of rpm -qpl

您也可以执行rpm -q并查找“未安装”:

example of -q