Jestem newbiew z użyciem przystawki, mam kilka aplikacji zainstalowanych w moim systemie, co zauważam po uruchomieniu polecenia df -h
znalazłem zamontowane różne wersje tej samej przystawki
/dev/loop0 143M 143M 0 100% /var/lib/snapd/snap/gravit-designer/7
/dev/loop1 82M 82M 0 100% /var/lib/snapd/snap/core/4110
/dev/loop7 198M 198M 0 100% /var/lib/snapd/snap/polarr/3
/dev/loop2 82M 82M 0 100% /var/lib/snapd/snap/core/4206
/dev/loop3 143M 143M 0 100% /var/lib/snapd/snap/gravit-designer/6
/dev/loop10 137M 137M 0 100% /var/lib/snapd/snap/gravit-designer/5
moje pytanie brzmi: dlaczego tam są, jedynym sposobem na usunięcie starego jest usunięcie i ponowne zainstalowanie przystawki, istnieje coś takiego jak prune
utrzymanie mojego systemu?
Odpowiedzi:
Oto krótki skrypt, który usunie wszystkie stare wersje snapów. Pozwoli to zachować tylko bieżącą aktywną wersję, która powinna przywrócić ci trochę miejsca na dysku:
źródło
/var/lib/snapd/snaps/
przed i po uruchomieniu tego skryptu. Powinny mieć wolne miejsce - jeśli naprawdę usunąłem jakieś zatrzaski. Powinien pokazywać wiadomości takie jaksnap-name removed
npgtk-common-themes removed
./var/lib/snapd/cache
więc musisz je usunąć, aby zwolnić miejsce. Możesz bezpiecznie usunąć pamięć podręczną za pomocąsudo rm /var/lib/snapd/cache/*
Począwszy od snapu 2.34 i nowszych, możesz ustawić maksymalną liczbę rewizji snapów przechowywanych przez system, ustawiając opcję refresh.retain .
Wartość refresh.retain może być liczbą od 2 do 20 i ma wartość domyślną 3.
źródło
refresh.retain=3
jest dobry na 4 GB pamięci RAM, czy potrzebujesz więcej?Wersja skryptu z innej odpowiedzi , jako jeden wiersz, bez
awk
zależności:Prawdopodobnie wymaga
bash
to kompatybilnej powłoki z[[
konstrukcją.źródło
sudo -i
może być potrzebna sesja lub może być wymaganasnap remove
jej uruchomieniesudo
.export LC_ALL=en_US.UTF-8
wcześniejszym wykonaniu powinno to zapewnić. (Można go również ustawić przed poleceniem przyciągania, ale nie jestem pewien, czy późniejsze usunięcia również będą musiały zostać przetłumaczone)LANG=c
zanim cała linia będzieLANG=C
(lubLC_ALL=C
) domyślne ustawienie regionalne. Małe literyc
mogą działać, ponieważC
są domyślne dla nieprawidłowych ustawień regionalnych. (LC_MESSAGES
jest to prawdopodobnie ustawienie minimalne) (Nie chcę edytować postu dla ustawienia, którego wielu użytkowników nie potrzebuje jednak ...) (Porównujesz błędyLANG=c locale
zLANG=C locale
)The snapd dotyczące wersji stwierdzają, że nieaktualne wersje powinny być automatycznie usuwane, aby nie instalować więcej niż dwóch ostatnich wersji. Jednak widziałem także zainstalowane więcej niż dwie wersje moich przystawek.
Możesz wyświetlić listę wszystkich wersji za pomocą
snap list --all
aby zobaczyć coś takiego:Możesz usunąć poszczególne wersje za pomocą
snap remove spotify --revision=5
.Jest to bezpieczne nawet dla wyłączonych wersji
core
i innych zależności, asnap remove
jawnie--revision=...
nawet zapobiega usuwaniu non-disabled
snap.źródło