GNU/Linux >> Znalost Linux >  >> Linux

Odebrat balíčky nainstalované v určité datum/čas v systému Linux

Instaluji a testuji spoustu aplikací na svých virtuálních počítačích s Linuxem. Po dokončení testování odstraním nainstalované balíčky, které se již nepoužívají. Vzhledem k tomu, že často instaluji mnoho aplikací, považuji za trochu časově náročný úkol ručně odstraňovat balíčky jeden po druhém. Občas také zapomenu odinstalovat nepotřebné balíčky. Pokud jste něco jako já, zde je jednoduché řešení, jak najít a odstranit všechny balíčky nainstalované v určité datum a čas v Linuxu.

Jak již možná víte, najdeme zde seznam nainstalovaných balíčků seřazený podle data instalace v různých distribucích Linuxu pomocí některého z následujících příkazů.

Na Arch Linux, EndeavourOS a Manjaro Linux:

$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n

Na Fedoře, RHEL, CentOS, AlmaLinux a Rocky Linux:

$ sudo rpm -qa --last

V systémech Debian, Ubuntu, Linux Mint a Pop OS:

$ grep " install " /var/log/dpkg.log

Výše uvedené příkazy zobrazí seznam všech balíčků nainstalovaných ve všech datech. Máme však zájem najít a odstranit balíčky nainstalované v konkrétní datum a čas pouze.

Můžeme použít %yyyy-%mm-%dd parametr s grep příkaz k zobrazení seznamu všech balíčků nainstalovaných v určité datum a čas.

Například následující příkaz zobrazí všechny nainstalované balíčky 14. září 2021 v mém systému Debian 11 bullseye.

$ grep "2021-09-14.*.install " /var/log/dpkg.log

Ukázkový výstup:

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

Jak vidíte ve výše uvedeném výstupu, nainstaloval jsem tmpreaper , vim a nano balíčky.

Pokud je povolena rotace protokolu, obsah /var/log/dpkg.log soubor bude smazán. V takovém případě můžete zobrazit soubor protokolu předchozí instalace pomocí příkazu:

$ grep "2021-09-14.*.install " /var/log/dpkg.log.1

Pokud chcete vypsat pouze názvy balíčků, s výjimkou data/času instalace a detailů architektury z výstupu, spusťte:

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1

Nyní uvidíte pouze názvy nainstalovaných balíčků k danému datu:

tmpreaper
hello
hello
tmpreaper
hello
tmpreaper
nano
tmpreaper
vim-runtime
vim

Nyní máme názvy všech nainstalovaných balíčků k danému datu.

Chcete-li odinstalovat všechny balíčky nainstalované k určitému datu, jednoduše přidejte příslušný apt argumenty příkazů pomocí xargs na konci předchozího příkazu.

Upozorňujeme, že následující příkazy nevyžadují potvrzení uživatele před smazáním balíčků. Vždy je tedy dobrým zvykem provést běh nasucho k ověření, které balíčky budou odstraněny před spuštěním skutečného příkazu.

Chcete-li simulovat (suché spuštění) procesu odstranění balíčku, jednoduše přidejte -s nebo --simulate jako níže.

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y -s

Výše uvedený příkaz bude pouze simulovat proces odstranění balíčku, ale nevymaže balíčky.

Jakmile zjistíte, které balíčky budou odstraněny, spusťte znovu výše uvedený příkaz bez -s nebo --simulate možnost:

$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

Pokud je povolena rotace protokolu, spusťte místo toho tento příkaz:

$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y

Tentokrát budou balíčky nainstalované v určený den z vašeho systému odstraněny.

Související čtení:

  • Jak najít a odebrat nepoužívané balíčky v systému Linux
  • Jak odebrat nainstalované balíčky z konkrétního úložiště v CentOS, Fedora
  • Snadný způsob instalace a odebrání skupiny balíčků v Arch Linuxu
  • Snadný způsob odebrání programů nainstalovaných ze zdroje v systému Linux

Linux
  1. Jak nainstalovat balíčky z konkrétního úložiště v Linuxu

  2. Jak vypsat nainstalované balíčky z určitého úložiště v Linuxu

  3. Jak vypsat všechny nainstalované balíčky v Linuxu

  1. Jak nainstalovat/odebrat/dotaz/aktualizovat balíčky RPM v Linuxu (Cheat Sheet)

  2. Odebrat úplně všechny balíčky, které jsem nainstaloval?

  3. Instalace rozšíření PHP na Linux

  1. Jak nainstalovat program ze zdroje na Linux

  2. Jak nainstalovat balíčky .tar.gz nebo .tgz v Linuxu

  3. Jak odebrat programy nainstalované ze zdroje pomocí GNU Stow v Linuxu