GNU/Linux >> Tutoriales Linux >  >> Linux

Eliminar paquetes instalados en cierta fecha/hora en Linux

Instalo y pruebo muchas aplicaciones en mis máquinas virtuales Linux. Una vez que termine con las pruebas, eliminaré los paquetes instalados que ya no se usan. Dado que instalo muchas aplicaciones a menudo, encuentro que es una tarea que requiere mucho tiempo eliminar manualmente los paquetes uno por uno. También a veces me olvido de desinstalar los paquetes innecesarios. Si es como yo, aquí hay una solución simple para encontrar y eliminar todos los paquetes instalados en una fecha y hora determinadas en Linux.

Como ya sabrá, podemos encontrar la lista de paquetes instalados ordenados por fecha de instalación en varias distribuciones de Linux usando cualquiera de los siguientes comandos.

En Arch Linux, EndeavourOS y Manjaro Linux:

$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n

En Fedora, RHEL, CentOS, AlmaLinux y Rocky Linux:

$ sudo rpm -qa --last

En Debian, Ubuntu, Linux Mint y Pop OS:

$ grep " install " /var/log/dpkg.log

Los comandos anteriores enumerarán todos los paquetes instalados en todas las fechas. Sin embargo, estamos interesados ​​en encontrar y eliminar paquetes instalados en una fecha y hora específicas solo.

Podemos usar %yyyy-%mm-%dd parámetro con grep Comando para enumerar todos los paquetes instalados en una fecha y hora específicas.

Por ejemplo, el siguiente comando muestra todos los paquetes instalados el 14 de septiembre de 2021 en mi sistema Debian 11 bullseye.

$ grep "2021-09-14.*.install " /var/log/dpkg.log

Salida de muestra:

2021-09-14 06:51:51 install tmpreaper:amd64 <none> 1.6.14+nmu2
2021-09-14 11:14:14 install hello:amd64 <none> 2.10-2
2021-09-14 11:17:13 install hello:amd64 <none> 2.10-2
2021-09-14 11:17:13 install tmpreaper:amd64 <none> 1.6.14+nmu2
2021-09-14 11:22:29 install hello:amd64 <none> 2.10-2
2021-09-14 11:22:29 install tmpreaper:amd64 <none> 1.6.14+nmu2
2021-09-14 11:41:16 install nano:amd64 5.4-2 5.4-2
2021-09-14 11:41:17 install tmpreaper:amd64 <none> 1.6.14+nmu2
2021-09-14 11:41:17 install vim-runtime:all 2:8.2.2434-3 2:8.2.2434-3
2021-09-14 11:41:18 install vim:amd64 2:8.2.2434-3 2:8.2.2434-3

Como puede ver en el resultado anterior, instalé tmpreaper , vim y nano paquetes.

Si la rotación de registros está habilitada, el contenido de /var/log/dpkg.log el archivo será eliminado. En ese caso, puede ver el archivo de registro de instalación anterior usando el comando:

$ grep "2021-09-14.*.install " /var/log/dpkg.log.1

Si desea enumerar solo los nombres de los paquetes, excluyendo la fecha/hora de instalación y los detalles de la arquitectura de la salida, ejecute:

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1

Ahora verá solo los nombres de los paquetes instalados en la fecha indicada:

tmpreaper
hello
hello
tmpreaper
hello
tmpreaper
nano
tmpreaper
vim-runtime
vim

Ahora tenemos el nombre de todos los paquetes instalados en la fecha dada.

Para desinstalar todos los paquetes instalados en una fecha determinada, simplemente agregue el respectivo apt argumentos de comando con xargs al final del comando anterior.

Tenga en cuenta que los siguientes comandos no le pedirán confirmación al usuario antes de eliminar los paquetes. Por lo tanto, siempre es una buena práctica realizar una prueba para verificar qué paquetes se eliminarán antes de ejecutar el comando real.

Para simular (ejecutar en seco) el proceso de eliminación de paquetes, simplemente agregue -s o --simulate como a continuación.

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y -s

El comando anterior solo simulará el proceso de eliminación de paquetes, pero no eliminará los paquetes.

Una vez que sepa qué paquetes se eliminarán, vuelva a ejecutar el comando anterior sin -s o --simulate opción:

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

Si la rotación de registros está habilitada, ejecute este comando en su lugar:

$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

Esta vez, los paquetes instalados en la fecha especificada se eliminarán de su sistema.

Lectura relacionada:

  • Cómo encontrar y eliminar paquetes no utilizados en Linux
  • Cómo eliminar paquetes instalados de un repositorio específico en CentOS, Fedora
  • La manera fácil de instalar y eliminar un grupo de paquetes en Arch Linux
  • Una manera fácil de eliminar programas instalados desde el código fuente en Linux

Linux
  1. Cómo instalar paquetes desde un repositorio específico en Linux

  2. Cómo enumerar los paquetes instalados desde un determinado repositorio en Linux

  3. Cómo enumerar todos los paquetes instalados en Linux

  4. Cómo instalar/eliminar/consultar/actualizar paquetes RPM en Linux (hoja de referencia)

  5. Instalación de extensiones de PHP en Linux

Eliminar paquetes instalados en cierta fecha/hora en Linux

Cómo instalar y quitar software en Manjaro Linux

Cómo encontrar la fecha y hora de instalación del sistema operativo Linux

11 ejemplos útiles de comandos de fecha de Linux

Cómo configurar la fecha y la hora en Linux

Ejemplos de comandos de fecha de Linux