Installo e test molte applicazioni nelle mie macchine virtuali Linux. Una volta terminato il test, rimuoverò i pacchetti installati che non vengono più utilizzati. Poiché installo spesso molte applicazioni, trovo che sia un compito che richiede un po' di tempo rimuovere manualmente i pacchetti uno per uno. Inoltre a volte dimentico di disinstallare i pacchetti non necessari. Se sei come me, ecco una semplice soluzione alternativa per trovare e rimuovere tutti i pacchetti installati in una certa data e ora in Linux.
Come forse già saprai, possiamo trovare l'elenco dei pacchetti installati ordinati per data di installazione in varie distribuzioni Linux utilizzando uno qualsiasi dei seguenti comandi.
Su Arch Linux, EndeavourOS e Manjaro Linux:
$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
Su Fedora, RHEL, CentOS, AlmaLinux e Rocky Linux:
$ sudo rpm -qa --last
Su Debian, Ubuntu, Linux Mint e Pop OS:
$ grep " install " /var/log/dpkg.log
I comandi precedenti elencheranno tutti i pacchetti installati in tutte le date. Tuttavia, siamo interessati a trovare ed eliminare i pacchetti installati in una data e ora specifica solo.
Possiamo usare %yyyy-%mm-%dd
parametro con grep comando per elencare tutti i pacchetti installati in una data e ora specifica.
Ad esempio, il comando seguente mostra tutti i pacchetti installati il 14 settembre 2021 nel mio sistema bullseye Debian 11.
$ grep "2021-09-14.*.install " /var/log/dpkg.log
Risultato di esempio:
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
Come puoi vedere nell'output sopra, ho installato tmpreaper , vim e nano pacchetti.
Se la rotazione del registro è abilitata, il contenuto di /var/log/dpkg.log
il file verrà eliminato. In tal caso, puoi visualizzare il file di registro dell'installazione precedente utilizzando il comando:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
Se vuoi elencare solo i nomi dei pacchetti, escludendo la data/ora di installazione e i dettagli dell'architettura dall'output, esegui:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1
Ora vedrai solo i nomi dei pacchetti installati nella data indicata:
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim
Ora abbiamo il nome di tutti i pacchetti installati nella data indicata.
Per disinstallare tutti i pacchetti installati in una determinata data, è sufficiente aggiungere il rispettivo apt
argomenti di comando con xargs
alla fine del comando precedente.
Tieni presente che i seguenti comandi non chiederanno alcuna conferma all'utente prima di eliminare i pacchetti. Quindi è sempre buona norma eseguire una corsa a secco per verificare quali pacchetti verranno rimossi prima di eseguire il comando effettivo.
Per simulare (dry run) il processo di rimozione del pacchetto, aggiungi semplicemente -s
o --simulate
come di seguito.
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y -s
Il comando precedente simulerà solo il processo di rimozione dei pacchetti, ma non eliminerà i pacchetti.
Dopo aver scoperto quali pacchetti verranno rimossi, esegui nuovamente il comando precedente senza -s
o --simulate
opzione:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y
Se la rotazione del registro è abilitata, esegui invece questo comando:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y
Questa volta i pacchetti installati nella data specificata verranno rimossi dal tuo sistema.
Lettura correlata:
- Come trovare e rimuovere i pacchetti inutilizzati in Linux
- Come rimuovere i pacchetti installati da un repository specifico in CentOS, Fedora
- Il modo semplice per installare e rimuovere un gruppo di pacchetti in Arch Linux
- Un modo semplice per rimuovere i programmi installati dal sorgente in Linux