Respuestas:
Todas las acciones con apt (apt-get) se registran. Estos archivos están disponibles en / var / log / apt /. Para ver el registro histórico más reciente, ejecute:
less /var/log/apt/history.log
Estos registros se rotan (cada mes, supongo), los archivos antiguos tendrán un sufijo con un número y se comprimirán. Entonces, para ver el siguiente registro del historial, use:
zless /var/log/apt/history.log.1.gz
Para ver los registros disponibles:
ls -la /var/log/apt/
También puede hacer un comando breve para mostrar el contenido interesante.
Agregue esta función personalizada a su ~/.bashrc
:
### pars for fun: install | remove | rollback
function apt-history(){
case "$1" in
install)
grep 'install ' /var/log/dpkg.log
;;
upgrade|remove)
grep $1 /var/log/dpkg.log
;;
rollback)
grep upgrade /var/log/dpkg.log | \
grep "$2" -A10000000 | \
grep "$3" -B10000000 | \
awk '{print $4"="$5}'
;;
*)
cat /var/log/dpkg.log
;;
esac
}
Y llámalo en una terminal como esta:
kreso@h17:~$ apt-history install
2013-08-06 14:42:36 install gir1.2-nautilus-3.0:amd64 <none> 1:3.8.2-0ubuntu1~ubuntu13.04.1
2013-08-06 14:42:36 install python-nautilus:amd64 <none> 1.1-3ubuntu1
2013-08-06 14:42:37 install insync-nautilus:all <none> 1.0.20
2013-08-07 14:41:37 install powertop:amd64 <none> 2.1-0ubuntu1
2013-08-07 18:44:10 install libdiscid0:amd64 <none> 0.2.2-3build1
2013-08-07 18:44:11 install sound-juicer:amd64 <none> 3.5.0-0ubuntu1
Tomado de aquí
zgrep ... /var/log/dpkg.log*
- también genera entradas de archivos.
También puede usar el siguiente comando para enumerar los paquetes instalados recientemente
grep "\ install\ " /var/log/dpkg.log
grep "\ install\ " /var/log/apt/history.log
en caso de que necesite copiar y pegar una lista en apt-get
Si desea esos paquetes que se instalaron y no se desinstalaron posteriormente, intente esto:
comm -23 <(grep "apt-get install" /var/log/apt/history.log | sed 's/.* //' | sort) \
<(grep "apt-get remove" /var/log/apt/history.log | sed 's/.* //' | sort)
Estas son las instalaciones menos las eliminaciones coincidentes.
Referencias
sort
usarlo, sort -u
en ambos casos para evitar que aparezcan líneas duplicadas, como en package like oracle-java8-installer
y muchos otros.
Así es como lo haces realmente, di paquete murmullo:
_P=mutter &&
(cat /var/log/dpkg.log{,.1};zcat /var/log/dpkg.log.*.gz) |
egrep --text "^[^ ]* [^ ]* (configure|install|remove|status [^ ]*|trigproc|upgrade) $_P[: ]" |
sort --reverse | less
El uso de dpkg.log captura operaciones que apt-get no ve.
Salida:
2016-12-20 09:47:35 status unpacked mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
2016-12-20 09:47:35 status installed mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
…
Para obtener el historial de actualizaciones de un paquete específico, suponiendo que se haya instalado / actualizado a través de apt, aquí hay un oneliner (bash y zgrep), por ejemplo, para el paquete skypeforlinux:
package='skypeforlinux'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
Esto incluye los archivos de registro del historial de apt para skypeforlinux, incluidas las tres líneas anteriores para obtener la fecha. Luego itera sobre el resultado y hace eco de las fechas y versiones relevantes.
Reemplace el valor de la variable del paquete con el nombre de su paquete, incluso funciona para varios paquetes, siempre que comiencen con la misma cadena.
Ejemplo con salida:
package='apache'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
2017-10-19 15:00:09 apache2-utils:amd64 (2.4.18-2ubuntu3.5)
2017-11-24 14:24:45 apache-pom-java:amd64 (10-2build1, automatic)
2018-02-22 16:42:02 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:34:34 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:36:32 apache2-data:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:40:50 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:42:07 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:42:39 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-03-15 10:08:50 apache-pom-java:amd64 (10-2build1)
2018-04-20 08:55:07 apache2-data:amd64 (2.4.18-2ubuntu3.5, 2.4.18-2ubuntu3.8)
2018-07-06 08:55:11 apache2-data:amd64 (2.4.18-2ubuntu3.8, 2.4.18-2ubuntu3.9)