检查软件包是否已安装的Python方式
发布于 2021-01-29 15:00:20
检查Centos / Redhat中安装的软件包列表的Python方式?
在bash脚本中,我将执行以下操作:
rpm -qa | grep -w packagename
关注者
0
被浏览
92
1 个回答
-
import sys import rpm ts = rpm.TransactionSet() mi = ts.dbMatch( 'name', sys.argv[1] ) try : h = mi.next() print "%s-%s-%s" % (h['name'], h['version'], h['release']) except StopIteration: print "Package not found"
- TransactionSet()将打开RPM数据库
- 没有参数的dbMatch将设置一个匹配迭代器以遍历整套已安装的软件包,您可以在匹配迭代器上调用next来获取下一个条目,即代表一个软件包的标头对象
- dbMatch也可以用于查询特定的程序包,您需要传递标签的名称以及要查找的该标签的值:
dbMatch('name','mysql')