설치된 스냅의 이전 버전을 제거하는 방법

설치된 스냅의 이전 버전을 제거하는 방법

저는 스냅 사용이 처음이고 시스템에 앱이 거의 설치되어 있지 않습니다. 명령을 실행할 때 df -h동일한 스냅의 다른 버전이 마운트된 것을 발견했습니다.

/dev/loop0       143M   143M     0 100% /var/lib/snapd/snap/gravit-designer/7
/dev/loop1        82M    82M     0 100% /var/lib/snapd/snap/core/4110
/dev/loop7       198M   198M     0 100% /var/lib/snapd/snap/polarr/3
/dev/loop2        82M    82M     0 100% /var/lib/snapd/snap/core/4206
/dev/loop3       143M   143M     0 100% /var/lib/snapd/snap/gravit-designer/6
/dev/loop10      137M   137M     0 100% /var/lib/snapd/snap/gravit-designer/5

내 질문은 그들이 거기에 보관하는 이유입니다. 오래된 것을 제거하는 유일한 방법은 스냅을 제거하고 다시 설치하는 것입니다.

prune내 시스템을 유지 관리하는 것과 같은 것이 있습니까 ?

답변1

다음은 제거할 짧은 스크립트입니다.모두이전 버전의 스냅. 이렇게 하면 현재 활성 버전만 유지되므로 일부 디스크 공간이 복구됩니다.

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

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

업데이트하기 전에 애플리케이션을 다시 시작하지 않았을 수 있기 때문에 "스냅 닫기"가 표시됩니다. 따라서 스크립트에 의해 제거될 개정판을 실제로 실행하고 있을 가능성이 있습니다.

답변2

버전다른 답변의 스크립트, 종속성 없이 한 줄로 작성 awk:

snap list --all | while read snapname ver rev trk pub notes; do if [[ $notes = *disabled* ]]; then snap remove "$snapname" --revision="$rev"; fi; done

이를 위해서는 해당 구성 bash과 호환되는 쉘이 필요할 수 있습니다 [[.

답변3

snap v2.34 이상부터 옵션을 설정하여 각 패키지에 대해 저장되는 최대 스냅 개정 수를 설정할 수 있습니다 refresh.retain. 숫자만 가능합니다.2에서 20 사이그리고기본값 3.

sudo snap set system refresh.retain=2 

답변4

코드@popey가 답변을 공유했습니다.일부 손상된 패키지에는 버전 정보가 없기 때문에 실제로 실패하는 경우가 있습니다. 그래서 이를 극복하기 위해 코드를 수정했습니다.

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

snapsToRemove=$(LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $2, $3}')

while read snapname version revision; do
    if [[ "$revision" == *[a-zA-z]* ]]; then
        # Version field is empty. Revision is in second field
        revision=$version
    fi
        snap remove "$snapname" --revision="$revision"
done <<< $snapsToRemove

관련 정보