GNU/Linux >> Linux Esercitazione >  >> Linux

Rimuovere i pacchetti installati in una determinata data/ora in Linux

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

Linux
  1. Come installare pacchetti da un repository specifico in Linux

  2. Come elencare i pacchetti installati da un determinato repository in Linux

  3. Come elencare tutti i pacchetti installati in Linux

  4. Rimuovere completamente tutti i pacchetti che ho installato?

  5. Installazione delle estensioni PHP su Linux

Rimuovere i pacchetti installati in una determinata data/ora in Linux

Come installare e rimuovere software in Manjaro Linux

Come trovare la data e l'ora di installazione del sistema operativo Linux

11 Esempi utili di comandi data di Linux

Come impostare data e ora su Linux

Esempi di comandi data di Linux