Как получить URL-адрес загрузки из dnf или rpmdb в python

Мне нужно, чтобы получить URL-адрес загрузки из пакетов RPM на Fedora под Python. Например, с помощью 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              

Мне нужно то же самое, но с питоном. Я пробовал с "import dnf" и "import rpm", но безуспешно.

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())

Возможно, вы захотите сделать немного больше обработки, например, использовать только одно из расположений, если существует несколько, и, возможно, некоторую обработку ошибок.

Другие вопросы по тегам