
Instalo y pruebo muchas aplicaciones en mis máquinas virtuales Linux. Una vez finalizada la prueba, eliminaré los paquetes instalados que ya no se utilizan. Como instalo muchas aplicaciones a menudo, me resulta un poco lento eliminar manualmente los paquetes de uno en uno. Además, a veces me olvido de desinstalar los paquetes innecesarios. Si eres como yo, aquí tienes una solución alternativa sencilla para buscar y eliminar todos los paquetes que se instalaron en Linux en una fecha y hora específicas.
Como ya sabrá, podemos encontrará la lista de paquetes instalados ordenados por fecha de instalación en diferentes distribuciones de Linux con uno de los siguientes comandos.
En Arch Linux, EndeavorOS y Manjaro Linux:
$ expac --timefmt="%Y-%m-%d %T" '%lt%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 enumeran todos los paquetes que se han instalado en todas las fechas. Sin embargo, estamos interesados en encontrar y eliminar paquetes instalados. en una fecha y hora específicas solamente.
Nosotros podemos usar %yyyy-%mm-%dd
Parámetros con grep Comando para enumerar todos los paquetes que se instalaron 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 de diana Debian 11.
$ 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 de arriba, lo instalé tmpreaper, empuje y nano Paquetes.
Cuando la rotación de registros está habilitada, el contenido de /var/log/dpkg.log
El archivo se eliminará. En este caso, puede ver el archivo de registro de instalación anterior con el siguiente comando:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
Si solo desea enumerar los nombres de los paquetes, sin la fecha / hora de instalación y los detalles de la arquitectura de la salida, haga lo siguiente:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk ' print $4 ' | cut -d: -f1
Ahora solo verá los nombres de los paquetes instalados en la fecha especificada:
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim
Ahora tenemos los nombres de todos los paquetes instalados en la fecha especificada.
Para desinstalar todos los paquetes instalados en una fecha específica, simplemente agregue el apt
Comando argumentos con xargs
al final del comando anterior.
Tenga en cuenta que los siguientes comandos no pedirá la confirmación del usuario antes de eliminar los paquetes. Así que siempre es una buena práctica Prueba de funcionamiento para comprobar qué paquetes se están eliminando antes de que se ejecute el comando real.
Para simular el proceso de eliminación de paquetes (ejecución de prueba), 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 simula el proceso de eliminación de paquetes, pero no elimina los paquetes.
Una vez que haya descubierto qué paquetes se están eliminando, ejecute el comando anterior nuevamente sin -s
o --simulate
Oportunidad:
$ 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.