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?

Réponses:


133

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

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


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


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.


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).


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*

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


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";
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.