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_pkg
Modul aus dem python-apt
Paket.