Skip to content Skip to sidebar Skip to footer

How To Get List Installed Linux Rpms With Python?

I use subprocess.getoutput('rpm -qa').split('\n'),it's not very well. rpmfile module can only read .rpm files Can you help me find one module?

Solution 1:

If you are using Fedora, there is a module called rpm from the package rpm-python that will allow you to query the rpm database:

import rpm

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

That is a simple piece of code from the documentation. See here for more information.


Solution 2:

Maybe code below is useful for someone.

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

Solution 3:

I modified code similar to what is posted by Marcus Poli. This was tested using Python 2.7 and 3.6 on CentOS 7.4. My original question was 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()))

Output:

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

Post a Comment for "How To Get List Installed Linux Rpms With Python?"