32

Я новичок с использованием моментальных снимков, в моей системе установлено несколько приложений, что я замечаю, когда запускаю команду 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 для обслуживания моей системы?

4 ответа4

38

Вот короткий скрипт, который удалит все старые версии снимков. Это сохранит только текущую активную версию, которая должна восстановить вам место на диске.

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

Начиная с версии 2.34 и более поздних, вы можете установить максимальное количество ревизий привязки, сохраняемых системой, установив параметр refresh.retain.

$ sudo snap set system refresh.retain=2 

Значение refresh.retain может быть числом от 2 до 20 и имеет значение по умолчанию 3

11

Версия скрипта из другого ответа, как однострочная, без зависимости 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 или совместимая оболочка с конструкцией [[ .

11

Документы Snapd по версиям утверждают, что устаревшие версии должны быть автоматически удалены, чтобы не было установлено более двух последних версий. Тем не менее, я также увидел более двух версий моих снимков.

Вы можете перечислить все ревизии с помощью snap list --all чтобы увидеть что-то вроде:

Name     Version                  Rev   Tracking  Developer  Notes
core     16-2.31.2                4206  stable    canonical  core,disabled
core     16-2.32.3                4407  stable    canonical  core,disabled
core     16-2.32.5                4486  stable    canonical  core
spotify  1.0.70.399.g5ffabd56-26  5     stable    spotify    disabled
spotify  1.0.72.117.g6bd7cc73-35  6     stable    spotify    disabled
spotify  1.0.77.338.g758ebd78-41  13    stable    spotify    -

Вы можете удалить отдельные ревизии с помощью snap remove spotify --revision=5 .

Это безопасно даже для пересмотра нетрудоспособного core и других зависимостей, и snap remove с явным --revision=... даже предотвращает от удаления Непро- disabled защелок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .