1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#!/usr/bin/python3
# Query one or more installed packages by their names but this time print more
# information.
# A Python equivalent for `rpm -qi hello`
import sys
import rpm
if len(sys.argv) == 1:
print("rpm: no arguments given for query")
sys.exit(1)
ts = rpm.TransactionSet()
for name in sys.argv[1:]:
mi = ts.dbMatch("name", name)
if not mi:
print("package {0} is not installed".format(name))
# Multiple packages can have the same name
for hdr in mi:
print(
f"Name : {hdr[rpm.RPMTAG_NAME]}\n"
f"Version : {hdr[rpm.RPMTAG_VERSION]}\n"
f"Release : {hdr[rpm.RPMTAG_RELEASE]}\n"
f"Architecture: {hdr[rpm.RPMTAG_ARCH]}\n"
f"Install Date: {hdr[rpm.RPMTAG_INSTALLTIME]}\n"
f"Group : {hdr[rpm.RPMTAG_GROUP]}\n"
f"Size : {hdr[rpm.RPMTAG_SIZE]}\n"
f"License : {hdr[rpm.RPMTAG_LICENSE]}\n"
f"Signature : {hdr.format("%{rsaheader:pgpsig}")}\n"
f"Source RPM : {hdr[rpm.RPMTAG_SOURCERPM]}\n"
f"Build Date : {hdr[rpm.RPMTAG_BUILDTIME]}\n"
f"Build Host : {hdr[rpm.RPMTAG_BUILDHOST]}\n"
f"Packager : {hdr[rpm.RPMTAG_PACKAGER]}\n"
f"Vendor : {hdr[rpm.RPMTAG_VENDOR]}\n"
f"URL : {hdr[rpm.RPMTAG_URL]}\n"
f"Bug URL : {hdr[rpm.RPMTAG_BUGURL]}\n"
f"Summary : {hdr[rpm.RPMTAG_SUMMARY]}\n"
f"Description :\n{hdr[rpm.RPMTAG_DESCRIPTION]}\n"
)
|