一尘不染

检查软件包是否已安装的Python方式

python

检查Centos / Redhat中安装的软件包列表的Python方式?

在bash脚本中,我将执行以下操作:

 rpm -qa | grep -w packagename

阅读 318

收藏
2021-01-20

共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"
  1. TransactionSet()将打开RPM数据库
  2. 没有参数的dbMatch将设置一个匹配迭代器以遍历整套已安装的软件包,您可以在匹配迭代器上调用next来获取下一个条目,即代表一个软件包的标头对象
  3. dbMatch也可以用于查询特定的程序包,您需要传递标签的名称以及要查找的该标签的值:
    dbMatch('name','mysql')
    
2021-01-20