【问题标题】:How to get list installed Linux rpms with Python?如何使用 Python 获取已安装的 Linux rpm 列表?
【发布时间】:2019-12-18 20:21:44
【问题描述】:

我用subprocess.getoutput("rpm -qa").split("\n"),不是很好。 rpmfile模块只能读取.rpm文件

你能帮我找一个模块吗?

【问题讨论】:

标签: python rpm


【解决方案1】:

如果你使用 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 了解更多信息。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我修改了类似于 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
      

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2021-01-12
        • 2014-04-14
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 2018-05-29
        • 2015-10-21
        • 2010-09-17
        相关资源
        最近更新 更多