Cómo enumerar los paquetes instalados por fecha en Linux
A veces, desea saber cuándo se instaló un paquete en su sistema operativo, tal vez con fines de auditoría, principalmente si es un administrador del sistema Linux.
En esta publicación de blog, le mostraré cómo enumerar los paquetes instalados por fecha en Linux: distribuciones de Ubuntu, Debian, CentOS y Arch Linux.
Enumere los paquetes instalados por fecha en Ubuntu / Debian
Si está ejecutando Ubuntu, Debian o cualquier otro derivado de Debian como Kubuntu, Xubuntu, etc., los comandos utilizados serán similares. Para enumerar los paquetes instalados ordenados por fecha, ejecute:
$ grep -i "install" /var/log/dpkg.log
Tenga en cuenta que el comando anterior funcionará solo si el paquete instalado se registró en el archivo /var/log/dpkg.log. Dado que el sistema Linux de forma predeterminada tiene algún tipo de rotación de registros, esto no funcionará para los registros rotados que se hayan comprimido. Para obtener todas las fechas de instalación de los paquetes, incluidos aquellos cuyos registros se han rotado, use el comando:
$ zcat /var/log/dpkg.log.* | grep -i "installed"
La salida de muestra es:
..... 2017-05-23 07:49:41 status installed libxaw7:amd64 2:1.0.13-1 2017-05-23 07:49:41 status installed libxcb-shape0:amd64 1.11.1-1ubuntu1 2017-05-23 07:49:41 status installed x11proto-xext-dev:all 7.3.0-1 2017-05-23 07:49:41 status installed libxext-dev:amd64 2:1.3.3-1 2017-05-23 07:49:41 status installed x11proto-render-dev:all 2:0.11.1-2 2017-05-23 07:49:41 status installed libxrender-dev:amd64 1:0.9.9-0ubuntu1 2017-05-23 07:49:41 status installed libxft-dev:amd64 2.3.2-1 2017-05-23 07:49:41 status installed libxrandr2:amd64 2:1.5.0-1 2017-05-23 07:49:41 status installed x11proto-scrnsaver-dev:all 1.2.2-1
zcat comando lee archivos comprimidos, luego canalizamos la salida a grep para filtrar.
Si desea grep para un paquete específico del que conoce parte de su nombre, puede canalizar la salida nuevamente al comando grep. Vea el ejemplo a continuación que busca la fecha de instalación del apto-espejo paquete.
# zcat /var/log/dpkg.log.* | grep -i "installed" | grep apt-mirror 2017-06-26 09:47:52 status installed apt-mirror:all 0.5.1-1ubuntu1
Una alternativa a zcat es el comando zgrep que funciona de manera similar a zcat. Piense en ello como un comando grep para archivos comprimidos:
# zgrep "installed" /var/log/dpkg.log* # zgrep "installed" /var/log/dpkg.log* | grep apt-mirror /var/log/dpkg.log.7.gz:2017-06-26 09:47:52 status installed apt-mirror:all 0.5.1-1ubuntu1
La ventaja de zgrep es que le mostrará el archivo de registro del que se obtuvieron esos datos. Como puede ver desde arriba, los datos se extrajeron del archivo /var/log/dpkg.log.7.gz.
Lista de paquetes instalados por fecha en CentOS
Para sistemas basados en RPM como Hat, CentOS, Scientific Linux, Fedora, SUSE, el comando rpm se usa para listar los paquetes instalados por fecha. Los comandos exactos para ejecutar son:
# rpm -qa --last
Este comando enumera los paquetes por hora de instalación, el más reciente primero. La salida de este comando se verá así:
libxml2-2.9.1-6.el7_2.3.x86_64 Sat 09 Dec 2017 10:15:00 AM EAT findutils-4.5.11-5.el7.x86_64 Sat 09 Dec 2017 10:15:00 AM EAT libgpg-error-1.12-3.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libffi-3.0.13-18.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libcap-ng-0.7.5-4.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libattr-2.4.46-12.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libacl-2.2.51-12.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT dbus-libs-1.6.12-17.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT sed-4.2.2-5.el7.x86_64 Sat 09 Dec 2017 10:14:58 AM EAT
Para buscar la fecha de instalación de un paquete específico, agregue el nombre del paquete al final del comando anterior.
# rpm -qa --last postfix3 postfix3-3.2.0-1.gf.el7.x86_64 Thu 25 May 2017 01:04:35 AM EAT
Del ejemplo. el paquete postfix3 se instaló el jueves 25 de mayo de 2017 a las 01:04:35 AM EAT.
Enumere los paquetes instalados por fecha en Arch
Para Arch Linux y sus derivados, como Antergos, Manjaro, Apricity, Ninja OS, etc., se utiliza la utilidad de extracción de datos de la base de datos alpm llamada expac. La invocación de expac consiste en proporcionar una cadena de formato. Se puede realizar más formateo de la salida utilizando parámetros y opciones de comando compatibles.
$ expac --timefmt="%F %T" '%l %n'
Para comparar la salida de acuerdo con el valor numérico de la cadena, canalice la salida a sort -n mando.
$ expac --timefmt="%F %T" '%l %n' | sort -n
La más reciente estará en la parte inferior, puede canalizar la salida para obtener las instalaciones más recientes.
$ expac --timefmt="%F %T" '%l %n' | sort -n | tail -n 7 2018-01-15 14:41:15 webkitgtk 2018-01-16 09:18:26 babl 2018-01-16 09:18:26 gegl02 2018-01-16 09:18:26 lcms 2018-01-16 09:18:26 libspiro 2018-01-16 09:18:26 libwmf 2018-01-16 09:18:27 gimp
Este ejemplo enumera 7 paquetes instalados recientemente.
Terminando
Hasta este punto, hemos cubierto todos los pasos necesarios para verificar la fecha de instalación del paquete en CentOS, Ubuntu, Debian y Arch Linux. Para cualquier sistema operativo con la misma derivada principal, los comandos deben ser los mismos. Dado que algunas distribuciones tienen más de un comando que hace el mismo trabajo, simplemente limítese al que prefiera.
Leer también: