使用python yum/rpm API查找rpm依赖项?

mon*_*kut 0 python rpm yum

它似乎应该可用,但我似乎无法找到它.

就像是:

pkg = rpm.Package(name="some package")
dependencies = pkg.dependencies()
Run Code Online (Sandbox Code Playgroud)

有没有这样的东西,比我现在做的更干净?

目前,我正在使用子进程包装rpm命令并手动解析输出:

cmd = "rpm -qRp {file} | sort | uniq".format(file=filename)
cmd_output = subprocess.check_output(cmd, shell=True)
# ... long parse of cmd_output
Run Code Online (Sandbox Code Playgroud)

Sta*_*tan 5

scipt将列出命令行提供的所有Requires(rpm文件的完整路径):

import os
import rpm
import sys

ts = rpm.TransactionSet()
fd = os.open(sys.argv[1], os.O_RDONLY)
h = ts.hdrFromFdno(fd)
os.close(fd)

for dep in h[rpm.RPMTAG_REQUIRENAME]:
    print dep
Run Code Online (Sandbox Code Playgroud)

或者在rpm数据库中使用包:

import os
import rpm
import sys

ts = rpm.TransactionSet()
mi = ts.dbMatch('name', sys.argv[1])
for ind in range(mi.count()):
    h = mi.next()
    for dep in h[rpm.RPMTAG_REQUIRENAME]:
        print dep
Run Code Online (Sandbox Code Playgroud)