【问题标题】:Find rpm dependencies using python yum/rpm API?使用 python yum/rpm API 查找 rpm 依赖项?
【发布时间】:2012-03-20 14:24:30
【问题描述】:

它似乎应该可用,但我似乎找不到它。

类似:

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

【问题讨论】:

    标签: python rpm yum


    【解决方案1】:

    以下 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
    

    或者使用 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
    

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 2019-03-19
      • 2020-01-03
      • 2015-06-16
      • 2014-11-30
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多