Las distribuciones basadas en RPM como Red Hat son fáciles:
rpm -qa --last
En Debian y otras distribuciones basadas en dpkg, su problema específico también es fácil:
grep install /var/log/dpkg.log
A menos que se haya girado el archivo de registro, en cuyo caso debe intentar:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
En general, dpkg
y apt
no parece rastrear la fecha de instalación, debido a la falta de dicho campo en la dpkg-query
página del manual.
Y, finalmente, los /var/log/dpkg.log.*
archivos antiguos se eliminarán mediante la rotación de registros, por lo que no se garantiza que le proporcione el historial completo de su sistema.
Una sugerencia que aparece varias veces (por ejemplo, este hilo ) es mirar el /var/lib/dpkg/info
directorio. Los archivos allí sugieren que podrías probar algo como:
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
Para responder a su pregunta sobre las selecciones, aquí hay un primer paso.
construir una lista de paquetes por fechas
$ find /var/lib/dpkg/info -name "*.list" -exec stat -c $'%n\t%y' {} \; | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list\t,\t,' | \
sort > ~/dpkglist.dates
lista de compilación de paquetes instalados
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
únete a las 2 listas
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
Por alguna razón, no está imprimiendo muchas diferencias para mí, por lo que puede haber un error o una suposición no válida sobre lo que --get-selections
significa.
Obviamente, puede limitar los paquetes usando find . -mtime -<days>
o head -n <lines>
, y cambiar el formato de salida como desee, p. Ej.
$ find /var/lib/dpkg/info -name "*.list" -mtime -4 | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list$,,' | \
sort > ~/dpkglist.recent
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.recent \
> ~/dpkglist.recentselections
para enumerar solo las selecciones que se instalaron (¿cambiaron?) en los últimos 4 días.
Probablemente también podría eliminar los sort
comandos después de verificar el orden de clasificación utilizado por dpkg --get-selections
y hacer que el find
comando sea más eficiente.