Wie kann ich den Verlauf von apt-get install
Befehlen anzeigen, die ich manuell ausgeführt habe?
Mir scheint, dass alle verfügbaren Methoden alles zeigen, was von Beginn der Ubuntu-Installation an installiert wurde.
Wie kann ich den Verlauf apt-get install
seit dem Abschluss meines Systeminstallationsprozesses anzeigen ?
system-installation
software-installation
history
Sag mir warum
quelle
quelle
dpkg
in/var/log/dpkg.log*
.apt-get install
Befehl zum Installieren eines Pakets manuell ausgeführt haben , und ich habe eine Lösung bereitgestellt, die diese Informationen liefert, sofern die Verlaufsdatei nicht auf bestimmte Weise geändert wurde (z. B. die Einträge) Wurde entfernt).Antworten:
Ich denke , die Antwort gegeben hier von kos ist der beste Weg , die ich bisher gesehen habe. Obwohl Software Center verwendet
apt
, wird alles, was es installiert hat, ebenfalls aufgelistet.Der Befehl lautet:
quelle
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po '^Commandline:(?=.* install ) \K.*' | sed '1,4d'
:grep -Po '^Commandline:(?=.* install ) \K.*'
filtert nur dieapt-get
Befehle enthalten ,install
mit einem vorderen und hinteren Raum,sed '1,4d'
könnte von der spezifischen Installation abhängen; in meinem1,4
löscht genau die Anzahl der Einträge aus Ubiquity, die Sie entfernen möchten. Lassen Sie mich wissen, ob die Nummer in Ihrer Installation identisch ist. Auf diese Weise haben wir zumindest eine Basislinie: |apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install linux-generic
mit dem neuen Befehl. Sind sie die Ubiquity-Linien?apt-get
Frontend ausgeführt werden, zu unterscheiden , abgesehen von Ubiquity, das nur einmal ausgeführt wird (aptdaemon
Einträge werden beispielsweise auch von diesem Befehl angezeigt). Am besten ist es jedoch, diesen Befehl zu verwenden, der die Ubiquity-Einträge zumindest ausschließt.Geben Sie einfach den folgenden Befehl in Ihr Terminal ein, um alle Installationsprotokolle anzuzeigen.
quelle
Um die @Arronical-Antwort zu vereinfachen: Ein guter Trick, den ich kürzlich gelernt habe, ist, dass Sie
zcat -qf
sowohl txt- als auch txt-gzipped-Dateien kategorisieren können.wird
Vom mann zcat:
quelle
Hier ist ein Skript, das nur die aktuell installierten Pakete der obersten Ebene druckt , wobei "Pakete der obersten Ebene" als atp-Pakete definiert ist, von denen keine anderen atp-Pakete abhängen. Wenn solche Top-Level-Programme von atp oder einem Paketmanager wie synaptic installiert wurden, wurden sie vom Benutzer manuell ausgewählt.
Die Pakete werden in umgekehrter Reihenfolge gedruckt, unter der Annahme, dass der Benutzer die neueren Informationen eher möchte und das Programm langsam ist.
Programmablauf:
/var/lib/dpkg/info/
. Die Datei-Mod-Zeiten sind die Installationszeiten.$Pkg
ein Aufruf,apt-cache rdepends $Pkg
um die umgekehrten Abhängigkeiten von anzufordern$Pkg
. Wenn keine Abhängigkeiten vorhanden sind, handelt es sich um ein Paket der obersten Ebene, und die Paketinformationen werden gedruckt: Datum Uhrzeit PaketnameAnmerkungen:
apt-cache rdepends $Pkg
das für das menschliche Auge bestimmt ist und in zukünftigen Versionen von apt geändert werden kann.dpgk
Verlaufsprotokolldateien nicht zuverlässig, da sie nach Erreichen eines bestimmten Volumens herausgedreht werden.apt-chache
apt-cache rdepends ...
ist vermutlich sehr langsam, da jeder Aufruf durch Iteration aller Abhängigkeiten berechnet wird. Daher beginnt das obige Skript mit den neuesten Installationen, um dem Benutzer so viel sofortige Befriedigung wie möglich zu bieten.--installed
Flag afterapt-cache
prüft, ob die von dpkg installierten Pakete auch apt-installiert sind. Wenn der Benutzer oder eine andere Installationssoftware apt umgeht und dpkg direkt verwendet, ist dies möglich. DIESER FALL WURDE NICHT GETESTET, aber ich denke, dass etwas Auffälliges entweder in der Standard- oder in der Fehlerausgabe gedruckt wird/home
erstellen, in dem die Software von Drittanbietern enthalten ist, ist diese Ausgabe geeignet.quelle
Wenn Sie alle Dinge sehen möchten, die Sie installiert haben, indem Sie Folgendes ausführen:
Und Sie haben weder den Bash-Verlauf durcheinander gebracht, noch möchten Sie den Verlauf dieser Art von Installation für einen anderen Benutzer (oder für alle Benutzer) anzeigen. Dann können Sie einfach Folgendes ausführen:
Und das sollte Ihnen meist relevante Ergebnisse bringen.
quelle
apt-get install
in der.bash_history
Datei nicht manuell geändert oder diese Datei gelöscht haben, zeigt der Befehl alle Instanzen an, wenn Sie einen Befehl mit der Zeichenfolgeapt-get install
in Ihrem Benutzerkonto ausgeführt haben (auch wenn Sie dies getan haben) Führen Sie den Befehl als root und damit nicht genau als Benutzerkonto aus - das heißt, Sie führen einen Befehl mitsudo
) aus.Wenn Sie
apt-get install
den Befehlsverlauf anzeigen möchten , verwenden Sie den folgenden Befehl:Ausgabe:
Weitere Informationen finden Sie unter Zusätzliche Informationen .
Es gibt auch detaillierte Installationsinformationen in
/var/log/apt/
denhistory.log
undhistory.log.X.gz
Dateien undterm.log
undterm.log.X.gz
DateienWenn Sie den Verlauf nur
apt-get
eingeschlossener Befehle wünschen , dannquelle
apt-mark showmanual
Zeigt alle Pakete an, die installiert wurden, als das Betriebssystem installiert wurde, und nicht nur diejenigen, die tatsächlich manuell installiert wurden. Es ist eine merkwürdige Art, sich zu verhalten!/var/log/apt/history.log
und ähnliche Dateien. Sie erhalten nur die Liste der manuell ausgewählten und automatisch ausgewählten Pakete. Sie geben in dieser Antwort keinen chronologischen Verlauf darüber an, was installiert, was entfernt, was aktualisiert usw. wurde.apt -mark showmanual
? Ich kann es auf der Ubuntu 16.04 LTS-Manpage nicht sehen fürapt
: < manpages.ubuntu.com/manpages/xenial/en/man8/apt.8.html >.Um zu sehen , was Sie haben installiert und entfernt, neu installiert, etc. Mehr Informationen über die Reise von apt-get installiert.
Die Antwort kann in einen Alias geändert werden:
quelle
Beachten Sie, dass einige Argumente vor der Installation gesetzt werden können, wie dies das virtualmin-Skript während der Installation tut: apt-get -y install packagename.
Wenn Sie also alle Installationsbefehle erfassen möchten, müssen Sie die Regex-Abfrage ändern.
quelle