Scannen Sie die auf Ubuntu installierten Pakete und holen Sie sich die Version

Scannen Sie die auf Ubuntu installierten Pakete und holen Sie sich die Version

Gibt es Python-Code, um die Liste der auf Ubuntu installierten Pakete zusammen mit der Version des Pakets abzurufen? Ich habe Python-Code bei gesehenErstellen einer Liste manuell installierter Pakete und Abfragen einzelner Pakete. Aber dort ist die Versions-ID nicht aufgeführt. Weiß jemand, wie man die Version der installierten Pakete herausbekommt?

Antwort1

Ich bin nicht sicher, ob es dafür bereits Code gibt. Aber Sie können sich die Datei ansehen /var/lib/dpkg/status. Alle Informationen zu installierten Paketen sind in dieser Datei gespeichert.

Das Schreiben von Code zum Parsen dieser Datei ist ziemlich einfach, selbst wenn Sie nicht so gut mit Python vertraut sind.

Antwort2

Ich bin nicht sicher, ob dies nicht zu Askubuntu migriert werden sollte, aber verwenden Sie einfach denselben Ansatz wie im erwähnten Thread. Führen Sie dpkg/dpkg-query aus, um einen Dump aller Daten zu erhalten, und verwenden Sie standardmäßige Python-Analysemechanismen, um die relevanten Informationen zu extrahieren.

Da Sie bereits ein Forking durchführen, können Sie die gesamte Textveränderung natürlich in Bash selbst durchführen.

Alternativ können Sie die Statusdatei mit den Versionen suchen, falls vorhanden („Dir::Etc::Status“?). Dieser Ansatz wäre der sauberste.

Antwort3

Übergeben Sie die Option -F( --format) an aptitude anAngeben, welche Felder angezeigt werden.

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

Verwenden Sie in Python das apt_pkgModul aus dem python-aptPaket.

verwandte Informationen