如何用python获取安装linux rpms的列表

时间:2015-12-18 16:52:35

标签: python rpm

我使用rpmfile,它不是很好。

你能帮我找一个模块吗?

ps:{{1}}模块只能读取.rpm文件

3 个答案:

答案 0 :(得分:5)

如果你正在使用Fedora,那么包rpm中有一个名为rpm-python的模块,它允许你查询rpm数据库:

import rpm

ts = rpm.TransactionSet()
mi = ts.dbMatch()
for h in mi:
    print "%s-%s-%s" % (h['name'], h['version'], h['release'])

这是文档中的一段简单代码。有关详细信息,请参阅here

答案 1 :(得分:1)

我修改了类似于Marcus Poli发布的代码。这已在CentOS 7.4上使用Python 2.7和3.6进行了测试。我最初的问题是How do I check if an rpm package is installed using Python?

import os
rpm = 'binutils'
f = os.popen('rpm -qa')
arq = f.readlines()
for r in arq:
   if rpm in r:
      print("{} is installed".format(r.rstrip()))

输出:

binutils-devel-2.27-34.base.el7.x86_64 is installed
binutils-2.27-34.base.el7.x86_64 is installed

答案 2 :(得分:0)

下面的代码也许对某人有用。

import os
f = os.popen('rpm -qa')
arq = f.readlines()
#print("First file=" + arq[0].strip())
for x in arq:
    print(x)