Où puis-je consulter l'historique de mes mises à jour?

141

Y a-t-il un endroit où je peux consulter les mises à jour que j'ai installées?

vrcmr
la source

Réponses:

133

Vous pouvez lire le history.logfichier en format /var/log/apt.

Par exemple. less /var/log/apt/history.log.

lgarzo
la source
45

Dans la version 10.10, Ubuntu Software Center contient une liste de toutes les mises à jour que vous avez téléchargées dans le passé.

entrez la description de l'image ici

Isaïe
la source
4
+1 Cette réponse fonctionne aussi sur les versions les plus récentes.
James Bradbury le
4
@JamesBradbury Cette option a disparu de Ubuntu le 16.04 on
feeela le
25

/ var / log / apt contient un historique des installations de paquet. Cependant, par défaut, il est géré par logrotatelequel compresse et vieillit les anciennes entrées.

msw
la source
Alors, est-ce le meilleur endroit pour vérifier l'historique sur Ubuntu Server?
Brettski
21

Le 10.04 Cliquez sur (Système> Administration> Gestionnaire de paquets Synaptic> Fichier> Historique).

vrcmr
la source
11
Tout ce que je reçois est une liste de paquets que j'ai installés via Synaptic. Il ne montre pas tous les paquets que j'ai mis à jour via Update Manager.
Esaïe
19

Comme alternative à la réponse de lgarzo, vous pouvez choisir grepce qui vous intéresse /var/log/dpkg.log. Par exemple, si vous voulez voir tout ce que vous avez installé ou mis à jour hier, vous pouvez exécuter:

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

Une chose à noter: cela listera également les paquetages installés manuellement ( sudo dpkg -i ...), qui n'apparaîtront pas dans l'historique d'apt.

Mieux encore, utilisez zgrep s'il est installé pour pouvoir également trouver des lignes dans les fichiers gzippés.

zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log*
htorque
la source
11

Il est maintenant possible de le faire également via le centre de logiciel! Accédez à l'historique et vous pourrez afficher toutes vos mises à jour et installations.

Historique du centre logiciel

Nick Pascucci
la source
Je suppose qu'il est 10h10?
vrcmr
Bien sûr est. Je ne pense pas que cela était disponible dans les distributions précédentes ...
Nick Pascucci
3

Il est devenu utile pour nous d'avoir une réponse un peu plus facile et précise à la question "Quand était la dernière fois que nous avons corrigé cette chose?". Alors j'ai mis ça ensemble. Je l'ai testé les 12.04 et 14.04 et 16.04. Il renvoie des réponses raisonnablement précises pour cette question. Remarque: "raisonnablement précis" n'est probablement pas "complètement exact". Remarque: "pour cette question" seulement.

exemple de sortie:

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

sous-programmes et programme:

#!/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";
}
JsinJ
la source