检查 Centos/Redhat 中安装的软件包列表的 Pythonic 方法?
在 bash 脚本中,我会这样做:
rpm -qa | grep -w packagename
最佳答案
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 来获取下一个条目,即代表一个软件包的 header 对象
dbMatch 还可以用于查询特定的包,您需要传递标签的名称以及您要查找的该标签的值:
dbMatch('name','mysql')
关于检查软件包是否安装的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27833644/