Получение названия repository из которого установлен пакет rpm

Всем привет! Нужна помощь в получении названия репозитория для установленных в системе пакетов. Я могу получить вот так: repoquery --installed '*' --queryformat='%{installtime} %{name} %{evr} %{from_repo}'

Я так понимаю что repoquery обращается к базе данных /var/lib/rpm Моя задача получить такую же информацию в python:

#!/usr/bin/python3

import sys
import rpm
import json
from datetime import datetime

if (len(sys.argv) != 3):
    print ('invalid amount of input arguments!')
    sys.exit()

# user inputs
dbtype = sys.argv[1]
dbpath = sys.argv[2]

# add macro to be used by rpm
rpm.addMacro("_db_backend", dbtype)
rpm.addMacro("_dbpath", dbpath)

# Open database
ts = rpm.TransactionSet()
ts.openDB()

# remove macro for future cases
rpm.delMacro("_db_backend")
rpm.delMacro("_dbpath")

allPackages = []
# retrieve all packages from BDB
mi = ts.dbMatch()

# build JSON object from all packages for easier parsing
for hdr in mi:
    pkgDict = {}
    allPackages.append(pkgDict)
    pkgDict['NAME'] = hdr[rpm.RPMTAG_NAME]
    pkgDict['VERSION'] = hdr[rpm.RPMTAG_VERSION]
    pkgDict['RELEASE'] = hdr[rpm.RPMTAG_RELEASE]
    pkgDict['ARCH'] = hdr[rpm.RPMTAG_ARCH]
    pkgDict['DISTRIBUTION'] = hdr[rpm.RPMTAG_VENDOR]
    pkgDict['OS'] = hdr[rpm.RPMTAG_PLATFORM]
    pkgDict['INSTALLTIME'] = datetime.utcfromtimestamp(hdr[rpm.RPMTAG_INSTALLTIME]).strftime('%Y-%m-%d %H:%M:%S')

print (json.dumps(allPackages, indent=4))

На выходе я получаю:

    {
    "NAME": "kernel-core",
    "VERSION": "4.18.0",
    "RELEASE": "348.el8",
    "ARCH": "x86_64",
    "DISTRIBUTION": "Oracle America",
    "OS": "x86_64-redhat-linux-gnu",
    "INSTALLTIME": "2022-05-26 10:56:39"
}

Ответы (0 шт):