Frage Wo kann ich meine Update-Historie nachschlagen?


Gibt es einen Ort, an dem ich nachsehen kann, welche Updates ich installiert habe?


108
2017-11-21 19:10


Ursprung




Antworten:


Sie können das lesen history.log Datei in /var/log/apt.

Z.B. less /var/log/apt/history.log.


99
2018-03-26 07:40





In 10.10, Ubuntu Softwarecenter hat eine Liste aller Updates, die Sie in der Vergangenheit heruntergeladen haben.

enter image description here


44
2017-11-21 19:24



+1 Diese Antwort funktioniert auch bei neueren Versionen. - James Bradbury
@JamesBradbury Diese Option ist seit Ubuntu 16.04 nicht mehr verfügbar - feeela


/ var / log / apt enthält eine Historie von Paketinstallationen. Standardmäßig wird es jedoch von verwaltet logrotate was alte Einträge komprimiert und altert.


23
2017-11-21 19:17



Ist das der beste Ort für mich, um den Verlauf von Ubuntu Server zu überprüfen? - Brettski


Am 10.04 Klicken Sie auf (System> Administration> Synaptic Package Manager> Datei> Verlauf)


21
2017-11-21 19:15



Alles, was ich bekomme, ist eine Liste von Paketen, die ich über Synaptic installiert habe. Es zeigt nicht alle Pakete, die ich über den Update Manager aktualisiert habe. - Isaiah


Als Alternative zu Lgarzos Antwort können Sie grep woran Sie interessiert sind /var/log/dpkg.log. Wenn Sie z. B. sehen möchten, was Sie gestern installiert oder aktualisiert haben, können Sie Folgendes ausführen:

cat /var/log/dpkg.log | grep "^2012-03-25.*\ installed\ "

Eine Sache zu beachten: Dies wird auch manuell installierte Pakete auflisten (sudo dpkg -i ...), die in der Geschichte von apt nicht erscheinen.

Verwenden Sie zgrep noch besser, wenn es installiert ist, damit Sie auch Zeilen in gezippten Dateien finden können

zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log*

14
2018-03-26 07:54





Dies ist jetzt auch über das Software-Center möglich! Gehen Sie zu Verlauf und Sie können alle Ihre Updates und Installationen anzeigen.

Software Center History


11
2017-11-21 19:25



Ich nehme an, es ist 10.10? - vrcmr
Sicher ist. Ich glaube nicht, dass dies in früheren Distributionen verfügbar war ... - Nick Pascucci


Es wurde nützlich für uns, eine etwas einfachere und genauere Antwort auf die Frage zu haben "Wann haben wir das letzte Mal das Ding geflickt?". Also habe ich das zusammengefügt. Ich habe es am 12.04 und 14.04 und 16.04 getestet. Es gibt ziemlich genaue Antworten für diese Frage zurück. Hinweis: "einigermaßen genau" ist wahrscheinlich nicht "vollständig korrekt". Hinweis: "nur für diese Frage".

Beispielausgabe:

xenial% 9: ./linuxpatchdate 
2016-07-19 54
2017-02-24 363
2017-03-08 7
2017-03-09 2

Unterprogramme und Programm:

#!/usr/bin/perl

#------------------ subroutines --------------------

sub parseRecord {
    my $sdate = "";
    my $useful = 0;
    my $packages = 0;
    my @ptmp;
    while (my $recordLine = shift() ) {

       if ($recordLine =~ m/^Start-Date: ([\d\-]*).*/) {
          $sdate = $1;
       }
       elsif ($recordLine =~ m/^Commandline:.*upgrade/) {
          $useful = 1;
       }
       elsif ($recordLine =~ m/^Install: (.*)/) {
          $recordLine =~ s/\([^\)]*\)//g;
          @ptmp = split(/,/,$recordLine);
          $packages = $packages + $#ptmp + 1;
       }
       elsif ($recordLine =~ m/^Upgrade: (.*)/) {
          $recordLine =~ s/\([^\)]*\)//g;
          @ptmp = split(/,/,$recordLine);
          $packages = $packages + $#ptmp + 1;
       }
    }



    if ($useful) {
       return ($sdate,$packages);
    }
    else {
       return ("0",0);
    }
}


#------------------ main program --------------------

@lines = split(/\n/,`/bin/zcat -f /var/log/apt/history.log  /var/log/apt/history*gz`);
my %patchHash;
my $line;
my @inputLines;
my $pushDate = "";
my $pushNum = "";

foreach $line (@lines) {
    # all records separated by blank lines
    if ($line !~ /./) {
       # no-op
    }
    elsif ($line =~ m/^Start-Date: ([\d\-]*).*/) {
       @inputLines = ();
       push (@inputLines, $line);
    }
    elsif ($line =~ m/^End-Date: ([\d\-]*).*/) {
       ($pushDate, $pushNum) = parseRecord(@inputLines);
       if ($pushNum != 0) {
          $patchHash{$pushDate} += $pushNum;
       }
    }
    else {
       push (@inputLines, $line);
    }
}

foreach $pushDate (sort(keys(%patchHash))) {
   print "$pushDate $patchHash{$pushDate}\n";
}

1
2018-03-10 23:40