Niedawno zainstalowałem Arch Linux i stwierdziłem, że stosunkowo szybko jem dużo pamięci. Z jakiegokolwiek powodu wykorzystałem już 17 GB w ciągu zaledwie około 2 tygodni. Nie mam zainstalowanej dużej ilości oprogramowania, więc jestem przekonany, że wszystkie stare pakiety są gdzieś przechowywane.
Aby to wesprzeć, zauważyłem, że jeśli zainstalowałem pakiet, usuń go, a następnie zainstaluj ponownie, a Pacman po prostu rozpakuje i ponownie zainstaluje oprogramowanie bez konieczności ponownego pobierania.
Po zainstalowaniu systemu podstawowego, przed dodatkowym oprogramowaniem, zużyłem około 2 GB lub więcej. Od tamtej pory zainstalowałem tylko Matlab, Skype, Wine i kilka innych małych programów. Oczywiście zainstalowałem również brakujące biblioteki i tym podobne, ale nie o wartości prawie 15 GB.
Czy całkowicie się tu mylę, czy Arch nigdy nie usuwa starych pakietów podczas pobierania / aktualizacji do nowych wersji?
Jeśli tak, to jak usunąć te nieużywane pakiety?
Ponadto po usunięciu zainstalowanych pakietów korzystam pacman -R ...
źródło
cron
lubsystemd
pracy.Odpowiedzi:
Nie, pacman nie usuwa starych pakietów z pamięci podręcznej (
/var/cache/pacman/pkg
), więc z czasem może się zapełnić.Możesz zastosować dwa podejścia do czyszczenia pamięci podręcznej: brutalna siła z
pacman -Sc
:Lub, dla bardziej szczegółowego podejścia, możesz użyć jednego z narzędzi dostarczanych z pacman-contrib
paccache
:Domyślnie
paccache
usunie wszystkie oprócz trzech ostatnich wersji zainstalowanego pakietu, ale możesz zmienić ten numer za pomocą-k, --keep
przełącznika. Istnieje również-d, --dryrun
przełącznik, aby wyświetlić podgląd zmian. Zobaczpaccache --help
wszystkie przełączniki.W pakiecie pacman-contrib znajduje się wiele narzędzi pomocnych w zarządzaniu pakietami, warto je wszystkie przejrzeć i zrozumieć, jak działają i mogą znacznie ułatwić obsługę Arch. Możesz zobaczyć pełną listę z:
źródło
--clean
przełącznikiem: zabrania łatwego powrotu do działającego pakietu, na wypadek, gdyby wystąpił jakiś problem z najnowszą wersją (np. nowy pakiet opiera się na starszej wersji lib lub Python; to samo ze sprzętem i najnowszym jądro). Uważam, że ustawianie pamięci podręcznej Pacmana jest gdzie indziej niż/
o wiele lepsze rozwiązanie (wystarczy ustawić ścieżkę w /etc/pacman.conf ).paccache
, możesz go zdobyć, instalującpacman-contrib
pakiet.$ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'
unikać pustej linii w wynikach? ;-)rm -rf /var/cache/pacman/pkg
niewłaściwiePamięć podręczna pakietu jest w
/var/cache/pacman/pkg/
.UWAGA:
pacman
pakiety zostały zaktualizowane w 2018 roku i dodatkowo wymagają instalacji,pacman-contrib
aby móc korzystać ze skryptów / narzędzi, jakpaccache
opisano poniżej.Zrobić:
Aby to zrobić
-dryrun
i zobaczyć, co uruchomienie tego narzędzia może usunąć, gdy wykonasz następujące czynności:Aby usunąć buforowane pakiety. 17 gbs brzmi stromo. Upewnij się, że nie masz dzienników ucieczki. Zrobić:
A nawet po prostu:
Aby uzyskać bardziej ogólny obraz tego, co się dzieje.
źródło
pacman -Scc
robi to, o co prosisz, ale nie jest to zalecane. Z WikiNawiasem mówiąc, kiedy odinstalowuję pakiety, wolę używać
pacman -Rnsc
, ponieważ usuwa ono również zależności pakietów, a także pakiety zależne od tego. Jak zawsze dokładnie przeczytaj, które pakiety są usuwane, ponieważ możesz bardzo łatwo pozostawić nasz system w stanie nieużytecznym.źródło
rm /var/cache/pacman/pkg/*
tym? Lub - tak przynajmniej domyślnie./tmp
Dawno temu przeniosłem pamięć podręczną pkg na większość komputerów i pozwoliłemsquid
obsłużyć jedną centralną pamięć podręczną na routerze. Nie tak proste, jakpacman -Scc
gdyby.Zdecydowanie sugeruję użycie
paccache
zamiastpacman -Sc
. Istnieje nawet bardzo skuteczna flaga do selektywnego usuwania wersji odinstalowanych pakietów-u
. Flagipaccache
polecam to (jako część paccache v5.0.2):-d
,--dryrun
: wykonaj próbę próbną, wyszukując tylko pakiety kandydujące-r
,--remove
: usuń pakiety kandydatów-u
,--uninstalled
: celuj tylko w odinstalowane pakiety-k
,--keep <num>
: zachowaj „num” każdego pakietu w pamięci podręcznej (domyślnie: 3)Przykład: Sprawdź, czy pozostała wersja pamięci podręcznej zdeinstalowanych pakietów
źródło
-u
zpaccache
. Przykłady dużych pakietów to np. Gnome, KDE lub Texlive, aby dać ci pomysł.-k
flag było dla mnie nowe i nie bardzo dobrze wyjaśnione w oknie pomocy, więc jego użycie tutaj był użyteczny.