Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''#
- # for sqlite databases
- #
- import json
- import rpm
- import tarfile
- dbpath = "/home/ubuntu-wbox-internal/Desktop/activity8/almalinux_db/var/lib/rpm"
- #dbtype = "sqlite"
- print("ok")
- # database extraction
- #tarfile = tarfile.open("almalinux.tar")
- #tarfile.extractall(dbpath)
- #tarfile.close()
- #rpm.addMacro("_db_backend", dbtype)
- rpm.addMacro("_dbpath", dbpath)
- print("ok")
- ts = rpm.TransactionSet()
- ts.openDB()
- #rpm.delMacro("_db_backend")
- rpm.delMacro("_dbpath")
- allPackages = []
- mi = ts.dbMatch()
- #mi.pattern("name", rpm.RPMMIRE_GLOB, "kernel*")
- print(f"mi = {mi}")
- for hdr in mi:
- # second method
- pkg = {}
- pkg['name'] = hdr[rpm.RPMTAG_NAME]
- pkg['version'] = str(hdr[rpm.RPMTAG_VERSION])
- pkg['size'] = str(hdr[rpm.RPMTAG_SIZE])
- pkg['license'] = hdr[rpm.RPMTAG_LICENSE]
- pkg['arch'] = hdr[rpm.RPMTAG_ARCH]
- pkg['group'] = hdr[rpm.RPMTAG_GROUP]
- pkg['provides'] = hdr[rpm.RPMTAG_PROVIDES]
- pkg['dependencies'] = hdr[rpm.RPMTAG_REQUIRES]
- allPackages.append(pkg)
- with open("out_rpm.json", "w") as fileout:
- print(json.dump(allPackages, fileout))
- # ts.closeDB()
- '''
- #
- # for sqlite databases
- #
- import json
- import rpm
- import tarfile
- dbpath = "/home/ubuntu-wbox-internal/Desktop/activity8/var/lib/rpm"
- dbtype = "ndb"
- print("ok")
- # database extraction
- # tarfile = tarfile.open("almalinux.tar")
- # tarfile.extractall(dbpath)
- # tarfile.close()
- rpm.addMacro("_db_backend", dbtype)
- rpm.addMacro("_dbpath", dbpath)
- print("ok")
- ts = rpm.TransactionSet()
- ts.openDB()
- rpm.delMacro("_db_backend")
- rpm.delMacro("_dbpath")
- allPackages = []
- mi = ts.dbMatch()
- # mi.pattern("name", rpm.RPMMIRE_GLOB, "kernel*")
- print(f"mi = {mi}")
- for hdr in mi:
- # second method
- pkg = {}
- pkg['name'] = hdr[rpm.RPMTAG_NAME]
- pkg['version'] = str(hdr[rpm.RPMTAG_VERSION])
- pkg['size'] = str(hdr[rpm.RPMTAG_SIZE])
- pkg['license'] = hdr[rpm.RPMTAG_LICENSE]
- pkg['arch'] = hdr[rpm.RPMTAG_ARCH]
- pkg['group'] = hdr[rpm.RPMTAG_GROUP]
- pkg['provides'] = hdr[rpm.RPMTAG_PROVIDES]
- pkg['dependencies'] = hdr[rpm.RPMTAG_REQUIRES]
- allPackages.append(pkg)
- with open("out_rpm.json", "w") as fileout:
- print(json.dump(allPackages, fileout))
- # ts.closeD
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement