Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: juwa2 31 Ledna 2023, 09:40:01
-
Uživatelé se mnohdy diví, kam jim mizí místo na disku - často za to můžou právě snap aplikace. Většina uživatelů ani netuší, že si tyto "molochy" do systému nainstalovali, protože Správci SW je nabízejí mezi ostatními běžnými verzemi (*.deb) aplikací. Jak tedy snapy "zkrotit"?
1. Zjistit zda, které a kolik jich vlastně máme:
snap list --all
(https://www.debugpoint.com/wp-content/uploads/2021/03/snap-list-all.jpg)
2. Všechny snapy zabírají hodně místa. A aby toho nebylo málo, uchovávají defaultně 3 poslední verze. Tím je spotřeba místa trojnásobná... :-\
Je to dobře vidět ve výpisu výše, některé snapy tam budou víckrát, liší se jen číslem verze (revision).
To lze částečně změnit na verze dvě příkazem
sudo snap set system refresh.retain=2
Bohužel nastavit pouze jedinou verzi možné není - ale aspoň něco...
3. K odstranění všech verzí kromě aktivní lze použít/vytvořit skript ~/bin/snapclean s tímto obsahem:
#!/bin/bash
#Removes old revisions of snaps
#CLOSE ALL SNAPS BEFORE RUNNING THIS
echo -e "\e[41m<<<<<<<< Nainstalované snapy/revision >>>>>>>>>>>>\e[0m"
df -h -x tmpfs -x fuse.portal --output=target,size | grep snap | sed 's/\/snap\///g' | sort
echo -e "\e[41m<<<<<<<<< Byly odstraněny tyto snapy >>>>>>>>>>>>>\e[0m"
echo
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
Nastavit mu spustitelnost. Potom stačí otevřít terminál a zadat příkaz
snapclean
Vypíše se seznam všech nainstalovaných snapů a jejich velikostí. Bude vyžádáno heslo a dojde k odstranění všech "nadbytečných" snapů. Jejich seznam se rovněž vypíše.
Skript je možné buďto občas spustit ručně, nebo ho dát do úlohy v rootovském cronu (denně). Pak bude čištění probíhat automaticky.