GNU/Linux >> Tutoriales Linux >  >> Debian

Debian – ¿Lista de paquetes en un sistema basado en Apt por fecha de instalación?

¿Cómo puedo enumerar los paquetes instalados por fecha de instalación?

Necesito hacer esto en debian/ubuntu. Las respuestas para otras distribuciones también estarían bien.

Instalé muchas cosas para compilar una determinada pieza de código y quiero obtener una lista de los paquetes que tuve que instalar.

Respuesta aceptada:

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 sencillo:

grep install /var/log/dpkg.log

A menos que se haya rotado el archivo de registro, en cuyo caso debería intentar:

grep install /var/log/dpkg.log /var/log/dpkg.log.1

En general, dpkg y apt no parecen rastrear la fecha de instalación, debido a la falta de dicho campo en dpkg-query página man.

Y eventualmente el viejo /var/log/dpkg.log.* los archivos se eliminarán mediante la rotación de registros, por lo que no se garantiza que esa forma le brinde 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 puede intentar 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í tiene un primer paso.

construir lista de paquetes por fechas

$ find /var/lib/dpkg/info -name "*.list" -exec stat -c $'%nt%y' {} ; | 
    sed -e 's,/var/lib/dpkg/info/,,' -e 's,.listt,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 muestra muchas diferencias para mí, por lo que podría haber un error o una suposición no válida sobre qué --get-selections significa.

Obviamente, puede limitar los paquetes usando find . -mtime -<days> o head -n <lines> y cambie el formato de salida como desee, por ejemplo,

$ 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 el sort comandos después de verificar el orden de clasificación utilizado por dpkg --get-selections y hacer el find comando más eficiente.


Debian
  1. Debian – ¿No se puede iniciar la instalación de Devuan/debian?

  2. Debian:¿cómo convertir un sistema basado en Debian de 32 bits (x86) a 64 bits?

  3. Instalar Docker (sistema operativo basado en Debian)

  4. Apt obtener ejemplos de comandos para administrar paquetes en Ubuntu/Debian

  5. Apt-Get Lista de paquetes instalados | Lista instalada con Apt en Ubuntu

Cómo configurar source.list en Debian 10

Cómo configurar source.list en Debian 9

Cómo instalar paquetes en Debian 10

Cómo enumerar los paquetes instalados ordenados por fecha de instalación en Linux

Cómo enumerar todos los paquetes actualizables en Ubuntu, Debian y Mint

Cómo eliminar paquetes de Ubuntu y Debian