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
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.