Dove posso cercare la mia cronologia degli aggiornamenti?


140

C'è un posto dove posso guardare quali aggiornamenti ho installato?

Risposte:


132

Puoi leggere il history.logfile in /var/log/apt.

Per esempio. less /var/log/apt/history.log.


45

In 10.10, Ubuntu Software Center ha un elenco di tutti gli aggiornamenti scaricati in passato.

inserisci qui la descrizione dell'immagine


4
+1 Questa risposta funziona anche su versioni più recenti.
James Bradbury,

4
@JamesBradbury Questa opzione è passata da Ubuntu 16.04 in poi
feeela il

25

/ var / log / apt contiene una cronologia delle installazioni di pacchetti. Tuttavia, per impostazione predefinita, è gestito da logrotatequale comprime e invecchia le voci precedenti.


Quindi è questo il posto migliore per me per controllare la cronologia su Ubuntu Server?
Brettski,

21

10.04 Fare clic su (Sistema> Amministrazione> Gestore pacchetti Synaptic> File> Cronologia)


11
Tutto quello che ottengo è un elenco di pacchetti che ho installato tramite Synaptic, non mostra tutti i pacchetti che ho aggiornato tramite Update Manager.
Isaia,

19

In alternativa alla risposta di Lgarzo, puoi fare grepciò che ti interessa /var/log/dpkg.log. Ad esempio, se vuoi vedere tutto ciò che hai installato o aggiornato ieri, puoi eseguire:

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

Una cosa da notare: questo elencherà anche i pacchetti installati manualmente ( sudo dpkg -i ...), che non compariranno nella cronologia di apt.

Anche meglio usare zgrep se è installato in modo da poter trovare linee anche nei file gzipped

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

11

Ora è possibile farlo anche tramite il centro software! Vai su Cronologia e puoi visualizzare tutti gli aggiornamenti e le installazioni.

Storia del Software Center


Suppongo sia il 10.10?
vrcmr,

Certo che lo è. Non penso che questo fosse disponibile nelle precedenti distribuzioni ...
Nick Pascucci,

3

Ci è stato utile avere una risposta leggermente più semplice e accurata alla domanda "quando è stata l'ultima volta che abbiamo patchato questa cosa?". Quindi ho messo insieme questo. L'ho provato su 12.04 e 14.04 e 16.04. Restituisce risposte ragionevolmente accurate per quella domanda. Nota: "ragionevolmente preciso" probabilmente non è "completamente accurato". Nota: solo "per quella domanda".

uscita campione:

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

subroutine e programma:

#!/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";
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.