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:
Esto es excelente. Lo único que falta es quién ejecutó los comandos.
Expiación limitada el
3
@LimitedAtonement Eche un vistazo a /var/log/auth.log, puede contener el usuario que ejecuta la instalación. (esto no ayudará si la instalación se invocó a través de un shell / programa que se ejecuta como root)
Lekensteyn
3
También útil: zgrep, zcat
ishmael
¿Este archivo también registra los paquetes de dependencia instalados como resultado de apt-get original?
Mahesha999
2
@LimitedAtonement las últimas versiones de APT ofrecen una parte del registro "Solicitado por:" para mostrar quién invocó el comando y qué comando invocaron como "Commandline: packagekit role = 'update-packages'" o "Commandline: apt actualización "
Michael Tunnell
21
También puede hacer un comando breve para mostrar el contenido interesante.
Agregue esta función personalizada a su ~/.bashrc:
+1: una sola línea, pero solo válida para el último período de rotación de registros. También, en lugar de sortusarlo, sort -uen ambos casos para evitar que aparezcan líneas duplicadas, como en package like oracle-java8-installery muchos otros.
Cbhihe
1
Así es como lo haces realmente, di paquete murmullo:
Tenga en cuenta que los triple backticks aquí no funcionan de la manera que usted piensa que lo hacen.
edwinksl
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.
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:
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:
Para ver los registros disponibles:
fuente
También puede hacer un comando breve para mostrar el contenido interesante.
Agregue esta función personalizada a su
~/.bashrc
:Y llámalo en una terminal como esta:
Tomado de aquí
fuente
zgrep ... /var/log/dpkg.log*
- también genera entradas de archivos.También puede usar el siguiente comando para enumerar los paquetes instalados recientemente
fuente
grep "\ install\ " /var/log/apt/history.log
en caso de que necesite copiar y pegar una lista en apt-getSi desea esos paquetes que se instalaron y no se desinstalaron posteriormente, intente esto:
Estas son las instalaciones menos las eliminaciones coincidentes.
Referencias
comm
: https://stackoverflow.com/a/11963862/338303<(grep...)
sintaxis: https://unix.stackexchange.com/questions/73931/redirecting-multiple-commands-as-inputfuente
sort
usarlo,sort -u
en ambos casos para evitar que aparezcan líneas duplicadas, como en package likeoracle-java8-installer
y muchos otros.Así es como lo haces realmente, di paquete murmullo:
El uso de dpkg.log captura operaciones que apt-get no ve.
Salida:
fuente
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:
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:
fuente