我允许用户从我的网站上传.rpm文件
我在脚本文件中使用sudo rpm -ivh $1 --nodeps
命令来提取名称作为参数传递的.rpm。我想检查刚刚上传并想要安装的文件用户是否已经存在于系统中,并在运行上述命令之前向用户显示正确的消息(或者是否有办法检查以便我的脚本返回值在此基础上我可以做出决定)..
命令的输出为
Preparing... ########################################### [100%]
package testing_rpm is already installed
它不会返回一些数值..
有没有办法(更好的方法)来做到这一点。
答案 0 :(得分:2)
请参阅this answer。
当一个或多个指定的操作失败时, rpm
会返回非零退出状态,因此如果您的系统上已经安装了软件包,那么1
显然是rpm
,这与无法安装一个软件包无法区分,你必须解析0
命令的输出。如果软件包的安装成功,则应返回零退出代码{{1}}。
答案 1 :(得分:1)
如果您想查看与RPM关联的文件,请针对它运行rpm -qpl
。这将为您提供rpm中包含的文件列表,而无需安装它。
这是针对tomcat rpm运行的命令,您可以在其中查看此软件包将安装的所有文件:
您也可以执行rpm -q
并查找“未安装”: