# rpm -qf /usr/lib64/python3.7/site-packages/six.py
python3-six-1.12.0-r0

Как использовать Python для запроса, к какому пакету принадлежит файл?

2
user1334609 13 Ноя 2019 в 05:39
Есть информация об используемой вами ОС? Я предполагаю, учитывая, что вы приравняли RPM к диспетчеру пакетов, вы используете Red Hat или Amazon Linux или что-то в этом роде ...
 – 
AER
13 Ноя 2019 в 05:52
1
 – 
Pedro Lobito
13 Ноя 2019 в 06:46

1 ответ

Я не нашел прямого обращения к базе данных rpm, которая возвращает пакет, предоставляющий данный файл, поэтому лучшее решение, которое я сейчас имею, следующее:

#!/usr/bin/env python3

import rpm

CHECK_FILE = "/usr/lib/python3.9/site-packages/six.py"

ts = rpm.TransactionSet()
mi = ts.dbMatch()
for h in mi:
    files = h['FILENAMES']
    if CHECK_FILE in files:
        print("{}-{}-{}".format(h['name'], h['version'], h['release']))
        break
0
Davide Madrisan 17 Окт 2021 в 22:15