GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer les packages installés à une certaine date/heure sous Linux

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

Linux
  1. Comment installer des packages à partir d'un référentiel spécifique sous Linux

  2. Comment répertorier les packages installés à partir d'un certain référentiel sous Linux

  3. Comment installer/supprimer/interroger/mettre à jour les packages RPM sous Linux (aide-mémoire)

  4. Supprimer complètement tous les packages que j'ai installés ?

  5. Installation des extensions PHP sous Linux

Supprimer les packages installés à une certaine date/heure sous Linux

Comment installer et supprimer des logiciels dans Manjaro Linux

Comment trouver la date et l'heure d'installation du système d'exploitation Linux

11 Exemples de commandes de date Linux utiles

Comment définir la date et l'heure sous Linux

Linux date Exemples de commandes