J'installe et teste de nombreuses applications sur mes machines virtuelles Linux. Une fois les tests terminés, je supprimerai les packages installés qui ne sont plus utilisés. Étant donné que j'installe souvent de nombreuses applications, je trouve que la suppression manuelle des packages un par un prend un peu de temps. De plus, j'oublie parfois de désinstaller les packages inutiles. Si vous êtes comme moi, voici une solution de contournement simple pour rechercher et supprimer tous les packages installés à une certaine date et heure sous Linux.
Comme vous le savez peut-être déjà, nous pouvons trouver la liste des packages installés triés par date d'installation dans diverses distributions Linux à l'aide de l'une des commandes suivantes.
Sur Arch Linux, EndeavourOS et Manjaro Linux :
$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
Sur Fedora, RHEL, CentOS, AlmaLinux et Rocky Linux :
$ sudo rpm -qa --last
Sur Debian, Ubuntu, Linux Mint et Pop OS :
$ grep " install " /var/log/dpkg.log
Les commandes ci-dessus listeront tous les packages installés à toutes les dates. Cependant, nous souhaitons rechercher et supprimer les packages installés à une date et une heure spécifiques uniquement.
Nous pouvons utiliser %yyyy-%mm-%dd
paramètre avec grep commande pour répertorier tous les packages installés à une date et une heure spécifiques.
Par exemple, la commande suivante affiche tous les packages installés le 14 septembre 2021 dans mon système Debian 11 bullseye.
$ grep "2021-09-14.*.install " /var/log/dpkg.log
Exemple de résultat :
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

Comme vous le voyez dans la sortie ci-dessus, j'ai installé tmpreaper , vim et nano colis.
Si la rotation des journaux est activée, le contenu de /var/log/dpkg.log
fichier sera supprimé. Dans ce cas, vous pouvez afficher le fichier journal d'installation précédent à l'aide de la commande :
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
Si vous souhaitez répertorier uniquement les noms de packages, à l'exclusion de la date/heure d'installation et des détails d'architecture de la sortie, exécutez :
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1
Vous ne verrez désormais que les noms des packages installés à la date indiquée :
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim

Nous avons maintenant le nom de tous les packages installés à la date indiquée.
Pour désinstaller tous les packages installés à une certaine date, ajoutez simplement le apt
respectif arguments de commande avec xargs
à la fin de la commande précédente.
Veuillez noter que les commandes suivantes ne demanderont aucune confirmation à l'utilisateur avant de supprimer les packages. Il est donc toujours recommandé d'effectuer un essai d'essai pour vérifier quels packages seront supprimés avant d'exécuter la commande proprement dite.
Pour simuler (essai à blanc) le processus de suppression de package, ajoutez simplement -s
ou --simulate
comme ci-dessous.
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y -s
La commande ci-dessus simulera uniquement le processus de suppression de packages, mais ne supprimera pas les packages.
Une fois que vous avez découvert quels packages vont être supprimés, réexécutez la commande ci-dessus sans -s
ou --simulate
choix :
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y
Si la rotation des journaux est activée, exécutez plutôt cette commande :
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

Cette fois, les packages installés à la date spécifiée seront supprimés de votre système.
Lire connexe :
- Comment rechercher et supprimer des packages inutilisés sous Linux
- Comment supprimer des packages installés d'un référentiel spécifique dans CentOS, Fedora
- Le moyen simple d'installer et de supprimer un groupe de packages dans Arch Linux
- Un moyen simple de supprimer les programmes installés à partir de la source sous Linux