Pesquisa de site

Como limpar versões Snap para liberar espaço em disco


Este guia rápido com um script ajuda a limpar versões antigas do snap e liberar espaço em disco em seus sistemas Ubuntu.

Eu estava ficando sem espaço em disco no meu sistema de teste com Ubuntu.

Então, eu estava investigando por meio do Disk Usage Analyzer do GNOME para descobrir qual pacote está consumindo o precioso espaço SSD. Além do cache normal e do diretório inicial – para minha surpresa, descobri que o Snap e o Flatpak consomem uma quantidade considerável de espaço de armazenamento.

Tamanho do snap – antes da limpeza

Embora eu sempre mantenha uma regra – não usar Snap ou Flatpak, a menos que seja necessário. Isso se deve principalmente ao tamanho da instalação e outros problemas. Eu prefiro pacotes vanilla deb e rpm. Ao longo dos anos, instalei e removi uma certa quantidade de pacotes Snap neste sistema de teste.

O problema surge após a desinstalação; O Snap mantém alguns arquivos residuais no sistema, desconhecidos dos usuários em geral.

Então abri a pasta Snap /var/lib/snapd/snaps e descobri que o Snap está monitorando versões mais antigas de pacotes instalados/desinstalados anteriormente.

Por exemplo, na imagem abaixo, você pode ver o GNOME 3.28, 3.34 e Wine – todos eles foram removidos há muito tempo. Mas eles ainda estão lá. Isso está acontecendo por causa do design do Snap, que mantém versões de pacotes desinstalados após uma desinstalação adequada.

Arquivos no diretório snaps

Alternativamente, você pode obter o mesmo no terminal usando:

snap list --all

lista instantânea de tudo

O valor padrão é 3 para diversas revisões para retenção. Isso significa que o Snap mantém três versões mais antigas de cada pacote, incluindo a versão ativa. Não há problema se você não tiver restrições de espaço em disco.

Mas para servidores e outros casos de uso, isso pode facilmente gerar problemas de custo, consumindo espaço em disco.

No entanto, você pode modificar facilmente a contagem usando o seguinte comando. O valor pode estar entre 2 e 20.

sudo snap set system refresh.retain=2

Limpar versões instantâneas

Em uma postagem no SuperUser, Popey, ex-gerente de engenharia da Canonical, forneceu um script simples que pode limpar versões antigas do Snaps e manter a mais recente.

Aqui está o script que usaremos para limpar o Snap up.

#!/bin/bash
 #Removes old revisions of snaps
 #CLOSE ALL SNAPS BEFORE RUNNING THIS
 set -eu
 LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
     while read snapname revision; do
         snap remove "$snapname" --revision="$revision"
     done

Salve o script acima como .sh em um diretório (por exemplo clean_snap.sh), dê permissão executável e execute.

chmod +x clean_snap.sh

Quando executei o script, ele reduziu muito espaço em disco. O script também mostraria o nome do pacote que está sendo removido.

Executando o roteiro

Ajusta o tamanho após a limpeza

Notas finais

Sempre há debates sobre o quão eficiente é o design do Snap. Muitos dizem que ele é quebrado por design, inchado e pesado em sistemas. Parte desse argumento é verdade, eu não negaria. Todo o conceito de aplicativos de sandbox é ótimo se implementado e aprimorado de maneira adequada. Acredito que o Flatpak faz um trabalho melhor em comparação ao Snap.

Dito isto, espero que isso ajude você a liberar espaço em disco. Embora tenha sido testado no Ubuntu, deve funcionar em todas as distribuições Linux que suportam Snap.

Além disso, confira nosso guia sobre como limpar o Ubuntu com etapas adicionais.

Finalmente, se você deseja limpar aplicativos Flatpak, consulte este guia.

Artigos relacionados