¿Dónde puedo buscar mi historial de actualizaciones?


141

¿Hay algún lugar donde pueda ver qué actualizaciones he instalado?

Respuestas:


133

Puedes leer el history.logarchivo en /var/log/apt.

P.ej. less /var/log/apt/history.log.


45

En 10.10, el Centro de software de Ubuntu tiene una lista de todas las actualizaciones que ha descargado en el pasado.

ingrese la descripción de la imagen aquí


44
+1 Esta respuesta también funciona en versiones más recientes.
James Bradbury

44
@JamesBradbury Esta opción ha desaparecido de Ubuntu 16.04 en adelante
feeela

25

/ var / log / apt contiene un historial de instalaciones de paquetes. Sin embargo, de forma predeterminada, se gestiona mediante logrotatela compresión y la caducidad de las entradas antiguas.


Entonces, ¿es este el mejor lugar para que revise el historial en Ubuntu Server?
Brettski el

21

El 10.04 Haga clic en (Sistema> Administración> Administrador de paquetes Synaptic> Archivo> Historial)


11
Todo lo que obtengo es una lista de paquetes que instalé a través de Synaptic, no muestra todos los paquetes que actualicé a través de Update Manager.
Isaías el

19

Como alternativa a la respuesta de lgarzo, puede grepsaber qué le interesa /var/log/dpkg.log. Por ejemplo, si desea ver todo lo que instaló o actualizó ayer, puede ejecutar:

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

Una cosa a tener en cuenta: esto también enumerará los paquetes instalados manualmente ( sudo dpkg -i ...), que no se mostrarán en el historial de apt.

Incluso mejor use zgrep si está instalado para que también pueda encontrar líneas en archivos comprimidos

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

11

¡Ahora también es posible hacerlo a través del centro de software! Vaya a Historial y puede mostrar todas sus actualizaciones e instalaciones.

Historia del centro de software


Supongo que es 10.10?
vrcmr

Seguro es. No creo que esto estuviera disponible en distribuciones anteriores ...
Nick Pascucci

3

Nos resultó útil tener una respuesta un poco más fácil y precisa a la pregunta "¿cuándo fue la última vez que reparamos esto?". Así que armé esto. Lo probé en 12.04 y 14.04 y 16.04. Devuelve respuestas razonablemente precisas para esa pregunta. Nota: "razonablemente exacto" probablemente no sea "completamente exacto". Nota: "solo para esa pregunta" solamente.

salida de muestra:

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

subrutinas y programa:

#!/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";
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.