
Eu estava usando o Disk Usage Analyzer recentemente para ver se eu poderia liberar algum espaço na minha área de trabalho do Ubuntu 18.04, quando notei que a pasta /var/lib/snapd/snaps/ era bem grande.
Ao investigar como eu poderia liberar algum espaço / limpar o cache de snap da pasta /var/lib/snapd/snaps/ sem remover os pacotes de snap que eu tinha instalado, descobri que por padrão, 3 versões de snap são armazenadas pelo sistema após as atualizações do pacote de snap. O que significa que para cada pacote snap instalado que tinha pelo menos 2 atualizações, eu tinha 3 revisões armazenadas no meu sistema, ocupando bastante espaço em disco.
Há uma opção de snap (começando com snapd versão 2.34), chamada refresh.retain, para definir o número máximo de revisões de um snap armazenadas pelo sistema após a próxima atualização, que pode ser definida como um número entre 2 e 20. Você pode alterar esse valor padrão de 3 para 2 usando:
sudo snap set system refresh.retain=2
Mas e se você quiser remover todas as versões mantidas no sistema para todos os pacotes de snap que tinham atualizações? Este é um script criado por Popey, Gerente de engenharia do Ubuntu na Canonical, para remover TODAS as versões antigas dos snaps, mantendo apenas a versão ativa atual:
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
O uso desse script deve liberar algum espaço em disco significativo (dependendo do número de pacotes de snap instalados no sistema e se eles tivessem atualizações desde que foram instalados). No meu caso, o script reduziu o tamanho da pasta /var/lib/snapd/snaps/ em mais de 50%.
Para usar este script, crie um arquivo chamado remove-old-snaps, cole o conteúdo do bloco de código acima, salve o arquivo em seu diretório pessoal e torne-o executável usando:
chmod +x remove-old-snaps
Execute o script com o sudo para remover revisões de snap antigas (certifique-se de fechar todos os snaps em execução antes de executar o script):
sudo ./remove-old-snaps
Este é o script em execução no meu sistema, removendo as revisões antigas do pacote de encaixe:
$ sudo ./remove-old-snaps
atom (revision 223) removed
atom (revision 222) removed
bitwarden (revision 15) removed
bitwarden (revision 16) removed
canonical-livepatch (revision 50) removed
canonical-livepatch (revision 54) removed
chromium (revision 607) removed
chromium (revision 660) removed
core (revision 6531) removed
core (revision 6405) removed
core18 (revision 719) removed
core18 (revision 731) removed
gallery-dl (revision 36) removed
gallery-dl (revision 167) removed
gimp (revision 110) removed
gimp (revision 113) removed