2012-03-02 8 views
0

利用できるはずですが、見つけられないようです。以下のようなpython yum/rpm APIを使用してrpm依存性を見つけますか?

何か:

pkg = rpm.Package(name="some package") 
dependencies = pkg.dependencies() 

が利用でき、このようなものがあり、それは私が今やっているよりもきれいでしょうか?現在、私はサブプロセスとrpmコマンドをラップして、手動で出力を解析してい

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

答えて

5

ザ・スクリプトは、すべてが一覧表示されます後は、コマンドライン(rpmファイルへのフルパス)に提供するパッケージから必要なもの:

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 

または代わり:

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 
関連する問題