Сканируйте и установите пакеты на Ubuntu вместе с версией

Есть ли код Python для получения списка пакетов, установленных на Ubuntu, вместе с версией пакета? Я видел код Python при создании списка установленных вручную пакетов и запросов к отдельным пакетам . Но у этого нет листинга идентификатора версии. Кто-нибудь знает, как получить версию установленных пакетов?

Я не уверен, есть ли для этого существующий код. Но вы можете посмотреть файл /var/lib/dpkg/status . Вся информация об установленных пакетах сохраняется в этом файле.

Написать код, который будет анализировать этот файл довольно легко даже в случае, если вы не велики в python.

Не уверен, что это не должно быть перенесено в askubuntu, но просто используйте тот же подход, что и в упомянутом потоке. Запустите dpkg / dpkg-query, чтобы получить дамп всех данных и использовать стандартные механизмы анализа python для извлечения соответствующей информации.

Конечно, поскольку вы уже нарисованы, вы можете делать все текстовые манипуляции в bash.

Кроме того, найдите файл состояния, содержащий версии, если он есть («Dir :: Etc :: Status»?). Этот подход был бы самым чистым.

Передайте параметр -F ( --format ) в aptitude, чтобы указать, какие поля отображаются .

 aptitude --disable-columns -F '%p %v' search '~A' 

Из Python используйте модуль apt_pkg из пакета python-apt .