Я новичок с использованием моментальных снимков, в моей системе установлено несколько приложений, что я замечаю, когда запускаю команду, 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
обслуживания моей системы?
Ответы:
Вот короткий скрипт, который удалит все старые версии снимков. Это сохранит только текущую активную версию, которая должна восстановить вам место на диске:
источник
/var/lib/snapd/snaps/
до и после запуска этого скрипта. Должно было освободить немного места - если действительно убрали несколько снимков. Должны отображаться такие сообщения, какsnap-name removed
, напримерgtk-common-themes removed
./var/lib/snapd/cache
поэтому вы должны удалить их, чтобы освободить место. Вы можете безопасно удалить кеш сsudo rm /var/lib/snapd/cache/*
Начиная с версии 2.34 и более поздних, вы можете установить максимальное количество версий оснастки, сохраняемых системой, установив параметр refresh.retain .
Значение refresh.retain может быть числом от 2 до 20 и имеет значение по умолчанию 3.
источник
refresh.retain=3
хорошо для 4Gb RAM или нужно больше?Версия скрипта из другого ответа , как однострочная, без
awk
зависимости:Это, вероятно, требует
bash
или совместимой оболочки с[[
конструкцией.источник
sudo -i
может потребоваться сеанс илиsnap remove
запуск с нимsudo
.export LC_ALL=en_US.UTF-8
заранее должен убедиться в том. (Это также может быть установлено перед командой snap, но я не уверен, что последующее удаление может потребоваться также перевести)LANG=c
прежде чем вся строка отлично работает на немецких консоляхLANG=C
(илиLC_ALL=C
) для локали по умолчанию. Нижний регистрc
может работать из-заC
того, что по умолчанию используется неверный языковой стандарт. (LC_MESSAGES
вероятно, минимальный параметр) (Я не хочу редактировать сообщение для параметра, который многим пользователям не нужен ...) (Вы сравниваете ошибкиLANG=c locale
сLANG=C locale
)Документы Snapd по версиям утверждают, что устаревшие версии должны быть автоматически удалены, чтобы не было установлено более двух последних версий. Тем не менее, я также увидел более двух версий моих снимков.
Вы можете перечислить все ревизии,
snap list --all
чтобы увидеть что-то вроде:Вы можете удалить отдельные ревизии с помощью
snap remove spotify --revision=5
.Это безопасно даже для отключенных ревизий
core
и других зависимостей, аsnap remove
с явным--revision=...
даже предотвращает удаление non-disabled
snaps.источник