Есть ли какой-либо код Python для получения списка пакетов, установленных в Ubuntu, вместе с версией пакета? Я видел код Python наФормирование списка вручную установленных пакетов и запрос отдельных пакетов. Но там нет списка идентификаторов версий. Может кто-нибудь знает, как узнать версию установленных пакетов?
решение1
Я не уверен, есть ли существующий код для этого. Но вы можете посмотреть файл /var/lib/dpkg/status
. Вся информация об установленных пакетах хранится в этом файле.
Написать код, который будет анализировать этот файл, довольно просто, даже если вы не очень хорошо разбираетесь в Python.
решение2
Не уверен, что это не следует перенести в askubuntu, но просто используйте тот же подход, что и в упомянутой теме. Запустите dpkg/dpkg-query, чтобы получить дамп всех данных, и используйте стандартные механизмы анализа Python, чтобы извлечь соответствующую информацию.
Конечно, поскольку вы уже выполняете форк, вы можете выполнить всю обработку текста непосредственно в bash.
В качестве альтернативы найдите файл состояния, содержащий версии, если таковые имеются ("Dir::Etc::Status"?). Этот подход будет самым чистым.
решение3
Передайте параметр -F
( --format
) aptitudeукажите, какие поля отображаются.
aptitude --disable-columns -F '%p %v' search '~A'
Из Python используйте apt_pkg
модуль из python-apt
пакета.