Wie kann ich eine Liste der Pakete erhalten, die ich mit apt-get installiert habe? [duplizieren]

Diese Frage hat hier bereits Antworten :

Kommentare

  • Beide Antworten hier erwähnen die history.log Dateien in /var/log/apt/. ' ist zu beachten, dass logrotate standardmäßig so konfiguriert ist, dass nur die letzten 12 Monate dieser Dateien gespeichert werden. Gleiches gilt für the /dpkg.log -Dateien in /var/log (die ähnliche Informationen in einem (IMO) einfacher zu analysierenden Format bereitstellen). Bearbeiten Sie /etc/logrotate.d/{apt,dpkg}, um die Aufbewahrungsrichtlinie für Ihr System zu ändern.

Antwort

Sie können das installierte Paket mit apt mit dem folgenden Befehl auflisten:

apt --installed list 

Bearbeiten Sie

Verwenden Sie den folgenden Befehl, um das installierte Paket über apt-get aufzulisten:

zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*" 

Quelle: Askubuntu

Kommentare

  • Wie Sie angegeben haben, werden alle installierten Pakete aufgelistet. Ich möchte Pakete, die ich manuell mit den Befehlen apt-get installiert habe.
  • @ user598200 – Akzeptieren Sie diese Antwort möglicherweise. 🙂
  • Basierend auf dieser askubuntu-Antwort komme ich zu (zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Commandline: apt(-get)? install)' | grep -v aptdaemon | egrep '^Commandline:'
  • zgrep -hPo '^Commandline: apt-get install (?!.*--reinstall)\K.*' /var/log/apt/history.log{.*.gz,} erzeugt dieselbe Ausgabe ohne die unnötigen zcat und cat. Wenn Sie sich ' nicht um die genaue Reihenfolge der Paketnamen in der Ausgabe kümmern, reicht /var/log/apt/history.log* für das Dateinamenargument aus.

Antwort

zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}" 

Dies gibt Ihnen eine Liste der Pakete, die haben wurden in der Reihenfolge installiert, in der sie installiert wurden.

Gemäß meinem Kommentar werden standardmäßig nur die /var/log/dpkg.log* -Dateien der letzten 12 Monate beibehalten. Um dies zu ändern, bearbeiten Sie /etc/logrotate.d/dpkg. Ändern Sie beispielsweise rotate 12 in rotate 1200, um den Wert der letzten 1200 Monate (100 Jahre) beizubehalten – effektiv für immer, löschen Sie niemals die alten Protokolle.

Übrigens, wenn Sie sehen möchten, wann Pakete aktualisiert wurden, ändern Sie install in upgrade. zB

zgrep -h " upgrade " /var/log/dpkg.log* | sort 

dasselbe für remove und purge.

Antwort

Wenn Sie nur eine Liste mit den Paketen anzeigen möchten, haben Sie manuell installierte Sie könnten Folgendes ausführen:

apt --installed list | grep -v automatic 

, um Pakete nicht aufzulisten, die als automatisch installiert gekennzeichnet sind

-v, --invert-match Invert the sense of matching, to select non-matching lines. 

Eine weitere Option, die ein unglückliches Paket mit " automatisch " in seinem Namen lautet:

apt-mark showmanual 

Kommentare

  • Kurz und bündig und alphabetisch sortiert.
  • Wenn ein Paketname zufällig " automatisch " enthält, wird er durch grep herausgefiltert.

Antwort

Dies hängt von aptitude ab, aber das Folgende gibt Ihnen eine Liste von pa Manuell installierte Pakete, dh sie werden nicht nur aufgrund von Abhängigkeiten installiert:

aptitude search -F %p "~i!~M" 

Je nachdem, wie das Image eingerichtet ist, werden wahrscheinlich auch einige installiert durch das Basissystem. Sie können einiges davon loswerden, indem Sie sie auf automatisch installiert umstellen und dann die wenigen, die Sie behalten möchten, als manuell markieren, obwohl Sie nichts davon abhängig haben. Dies ist einfach mit M innerhalb von aptitude auf einem nackten System zu tun.

Antwort

Verwenden Sie dpkg, um alle auf einem System installierten Pakete aufzulisten: dpkg --get-selections

So listen Sie alle mit apt-get /var/log/apt/history.log. Dieses Protokoll enthält auch Pakete, die Sie entfernt haben. Sie können grep für die Zeilen verwenden, die mit Install: beginnen.

Kommentare

  • Wie Sie angegeben haben, werden alle installierten Pakete aufgelistet. Ich möchte Pakete, die ich manuell mit den Befehlen apt-get installiert habe.
  • @ user598200 Ah. Danke für das Aufklären. Siehe meine bearbeitete Antwort. Ich bin nicht sicher, ob apt-get diese Funktionalität hat. Aber wenn Sie etwas installieren, wird es an die Protokolldatei angehängt, die ich in der Antwort erwähne.
  • Danke.Wie kann ich alle /var/log/apt/history.log* -Dateien durchgehen und die Paketnamen mit einem Schlag ausdrucken?
  • @ user598200 Sie können . grep "Install: package" /var/log/apt/history.log*

Antwort

Ubuntu 14.04 und höher verwenden apt list --installed für ältere Versionen verwenden Sie dpkg --get-selections | grep -v deinstall

Antwort

Etwas kürzer und sortiert

gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u 

Kommentare

  • Einige Erklärungen, warum dies so ist Besser als die Antwort, die @ GAD3R gegeben hat, wäre hilfreich.
  • Erstens ist es ' kürzer, zweitens ist die Ausgabe sortiert
  • Die Idee zu U & L ist, dass Sie Ihre Antwort (oder Frage, falls Sie eine gepostet haben) verbessern, indem Sie den Beitrag bearbeiten, anstatt wertvolle Informationen in Kommentaren zu verbergen. Da ich den Befehl ausschneiden und einfügen würde, sind die 26 Bytes weniger nicht so interessant, aber die Tatsache, dass Ihre Ausgabe sortiert ist, gehört wirklich zur Antwort selbst. Wenn eine solche Verbesserung eine Reaktion auf eine Aufforderung zur Klärung war, hat ein einfaches " meine Antwort " aktualisiert, wie es der Kommentar tun wird, der Kommentator ( In diesem Fall werde ich über diesen Kommentar informiert. Ich denke, die Knappheit ist auch die Ursache dafür, dass jemand Ihre Antwort abgelehnt hat.
  • Wenn Sie Golf spielen möchten, versuchen Sie es mit zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.