quinta-feira, 22 de setembro de 2022

Como remover versões antigas de pacotes Snap para liberar espaço em disco

Eu estava usando o Disk Usage Analyzer recentemente para ver se poderia liberar algum espaço na minha área de trabalho do Ubuntu 18.10, quando notei que a /var/lib/snapd/snaps/pasta era bastante grande.

Ao investigar como eu poderia liberar algum espaço / limpar o cache de snap da /var/lib/snapd/snaps/ pasta sem remover os pacotes de snap que eu instalei, descobri que, por padrão, 3 versões de snap são armazenadas pelo sistema após as atualizações do pacote de snap. Significando 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.

Existe 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 isso do 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 snap que tiveram atualizações? Este é um script criado por Popey, Community Manager in Ubuntu Engineering na Canonical, para remover TODAS as versões antigas de snaps, mantendo apenas a versão ativa atual (atualizada LANG=en_US.UTF-8 para funcionar com localidades não inglesas):

#!/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

Para português do Brasil

#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu

LANG=pt_BR.UTF-8 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 snap instalados em seu sistema e se eles tiveram atualizações desde que foram instalados). No meu caso, o script reduziu o tamanho da  /var/lib/snapd/snaps/ pasta em mais de 50%.

Atualização: Parece que este script só funciona com inglês. Para outros idiomas, você precisará substituir /disabled/ o comando pela tradução para o seu idioma.

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 inicial e torne-o executável usando:

chmod +x remove-old-snaps

Execute o script com sudo para remover as 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 snap:

$ 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

Fonte:
https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html


Nenhum comentário:

Postar um comentário