如何从python中的dnf或rpmdb获取下载URL

时间:2018-05-09 00:59:19

标签: python rpm dnf

我需要从python下的fedora上的rpm包中获取下载URL。 例如,使用dnf我只需输入:

# dnf download --url xterm 
rsync://fedora.tu-chemnitz.de/ftp/pub/linux/fedora/linux/releases/27/Everything/x86_64/os/Packages/x/xterm-330-3.fc27.x86_64.rpm              

我需要和python一样的东西。 我尝试过“import dnf”和“import rpm”但没有成功。

1 个答案:

答案 0 :(得分:1)

使用DNF,它看起来像这样(未经测试,因为写得很快):

base = dnf.Base()
base.read_all_repos()
base.fill_sack()
for pkg in base.sack.query().filter(name='xterm'):
    print(pkg.remote_location())

您可能希望进行更多处理,例如仅使用其中一个位置(如果存在多个位置),并且可能需要进行一些错误处理。