Como remover pacotes de snap desativados (não usados) com uma única linha de comando?

6

Quando executo o comando snap list --all , ele mostra todas as versões instaladas dos pacotes snap.

Name                  Version       Rev   Tracking  Developer     Notes
atom                  1.26.1        150   stable    snapcrafters  classic
brave                 v0.22.669dev  23    stable    brave         -
core                  16-2.32.6     4571  stable    canonical     core
core                  16-2.32.5     4486  stable    canonical     core,disabled
firefox               59.0.2-1      71    stable    mozilla       disabled
firefox               60.0-2        85    stable    mozilla       -
gimp                  2.10.0        38    stable    snapcrafters  disabled
gimp                  2.10.0        39    stable    snapcrafters  -
gimp                  2.8.22        30    stable    snapcrafters  disabled
gnome-3-26-1604       3.26.0        64    stable/…  canonical     -
gnome-3-26-1604       3.26.0        62    stable/…  canonical     disabled
gnome-characters      3.28.0        86    stable/…  canonical     -
gnome-characters      3.26.2        69    stable/…  canonical     disabled
gnome-logs            3.26.2        25    stable/…  canonical     disabled
gnome-logs            3.28.0        31    stable/…  canonical     -
gnome-system-monitor  3.26.0        36    stable/…  canonical     disabled
gnome-system-monitor  3.26.0        39    stable/…  canonical     -
libreoffice           6.0.3.2       59    stable    canonical     disabled
libreoffice           6.0.4.2       63    stable    canonical     -

Agora existem muitos pacotes desativados que não são mais usados. Então eu quero remover esses pacotes. Aqui o comando é snap remove gnome-3-26-1604 --revision=62 . Agora eu tenho que fazer isso para todas as revisões e para todos os pacotes, um por um. Existe algum comando que irá remover os pacotes de snap desativados ou não usados com uma única linha de comando?

Obrigado antecipadamente ...

    
por Ryko 15.05.2018 / 19:36

4 respostas

7

Eu vou olhar para adicionar isso em breve (como uma coisa de 20%). Enquanto isso, você pode cair

#!/bin/sh
set -eu

snap list --all | awk '/disabled/{print $1, $3}' |
    while read snapname revision; do
        snap remove "$snapname" --revision="$revision"
    done

em um script de shell e execute isso.

    
por Chipaca 25.05.2018 / 10:28
2

A capacidade de limpar / remover snaps antigos / desativados foi discutida anteriormente, mas ainda não implementado. Enquanto isso, infelizmente, é um processo manual.

    
por popey 25.05.2018 / 10:18
2

Isso está sendo trabalhado por um desenvolvedor do Snapd agora: link

    
por Zygmunt Krynicki 25.05.2018 / 16:53
1

Os snaps antigos são removidos automaticamente para que haja um máximo de três. A discussão apontada por @popey é sobre como tornar o número configurável. Esse trabalho, para permitir que o padrão seja reduzido para 2 revisões por snap (mas não menor), parece ser mesclado agora: link

Alguma esperança de conseguir backported para o Bionic 18.04 LTS?

Permitir que o número de revisões salvas seja configurável por snap também seria bom para aqueles pacotes enormes que existem por aí.

    
por nealmcb 30.10.2018 / 12:55