Instances of the rpm.mi object provide access to headers that match certain criteria. Typically, a primary index is accessed to find a set of headers that contain a key, and each header is returned serially.
The rpm.mi class conains the following methods:
To obtain a rpm.mi object to query the database used by a transaction, the ts.match(tag,key,len) method is used.
Here's an example that prints the name of all installed packages:
import rpm
ts = rpm.TransactionSet()
for h in ts.dbMatch():
print h['name']
Here's a more typical example that uses the Name index to retrieve all installed kernel(s):
import rpm
ts = rpm.TransactionSet()
mi = ts.dbMatch('name', "kernel")
for h in mi:
print "%s-%s-%s" % (h['name'], h['version'], h['release'])
Finally, here's an example that retrieves all packages whose name matches the glob expression "XFree*":
import rpm
ts = rpm.TransactionSet()
mi = ts.dbMatch()
mi.pattern('name', rpm.RPMMIRE_GLOB, "XFree*")
for h in mi:
print "%s-%s-%s" % (h['name'], h['version'], h['release'])