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

发布于 2021-01-29 15:00:20

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

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

 rpm -qa | grep -w packagename
关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    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')
      


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看