Apt-Cache: Wie liste ich alle installierten Pakete mit Versionsnummer auf?

51

apt-cache dump --installed funktioniert nicht, es werden auch deinstallierte Pakete aufgelistet.

Ich möchte die Installationspakete jeweils in einer Zeile mit der installierten Versionsnummer auflisten.

Xiè Jìléi
quelle
3
bug # 775771 apt-cache Suchergebnisse auf installierte Pakete beschränken
bartolo-otrit

Antworten:

53

Versuchen dpkg -l

Es listet Ihnen die Pakete, Version und eine kurze Beschreibung.

kev
quelle
1
Ich mag auch, apt-show-versionsda es auch zeigt, welches ist uptotdate.
Malat
37

Die einfachste Methode ist die Verwendung dpkg, es werden jedoch möglicherweise einige externe Pakete angezeigt und lange Paketnamen und Versionsnummern abgeschnitten:

dpkg -l

So listen Sie nur korrekt installierte Pakete auf und kürzen Namen nicht:

dpkg -l | grep '^ii'

Um mehr Kontrolle über das Ausgabeformat zu erhalten, können Sie Folgendes verwenden dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Gilles 'SO - hör auf böse zu sein'
quelle
13

Ein anderer Befehl kann sein:

apt-show-versions

Außerdem erhalten Sie Informationen zum Paketstatus (aktuell, aktualisierbar, ...) und zur Ursprungsverteilung (Wheezy, Jessie, ...). Pakete, die aus Backports oder anderen exotischen Repositories stammen, können einfach herausgefiltert werden.

Dieses Programm ist separat verpackt. Installiere es zuerst mit:

apt-get install apt-show-versions
SkyRaT
quelle
Das ist wirklich schön, da es die Version zeigt, auf die ein Paket aktualisiert werden könnte. +1.
Randall Cook
In Kombination damit apt-mark showmanualhaben Sie eine schöne und einfache Möglichkeit, Versionen aller manuell installierten Pakete abzurufen , siehe auch diese Askubuntu-Antwortapt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor
4

Mit dem folgenden Befehl werden die Pakete mit ihren Versionen aufgelistet. Außerdem können Sie später mithilfe der pkg-selections.txthier generierten Datei ein System mit denselben Paketen und Versionen einrichten:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Jede Zeile enthält den Paketnamen, die Version und ein optionales "A", wenn das Paket automatisch installiert wurde.

Quelle: " Klonen eines Debian-Systems - identische Pakete und Versionen ". Enthält auch das Skript, mit dem ein System eingerichtet wird pkg-selections.txt.

Tanius
quelle
4

Geben Sie zum Auflisten der Namen der installierten Pakete einen beliebigen Benutzer ein:

dpkg --get-selections

Sie erhalten eine Ausgabe wie diese:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

Um die unnötige "install" -Zeichenfolge zu entfernen, können Sie sed verwenden :

dpkg --get-selections | sed 's:install$::'

Und wenn Sie es in einer Datei namens InstalledPackages speichern möchten, geben Sie Folgendes ein :

dpkg --get-selections | sed 's:install$::' > InstalledPackages
Rémi G.
quelle
1

Wenn Sie keinen Zugriff auf das Live-System haben und eine Sicherung der Root- /Partition haben, können Sie:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

Dies /root/installed_appenthält nun alle installierten Pakete!

sasha2002
quelle