Как почистить Snap, чтобы освободить место на диске

Как почистить Snap, чтобы освободить место на диске

Это краткое руководство со скриптом поможет почистить snap, удалить старые версии пакетов и освободить место на вашем диске.

У меня заканчивалось место на диске в моей тестовой системе с Ubuntu.

Итак, я исследовал с помощью Disk Usage Analyzer GNOME, чтобы выяснить, какой пакет потребляет драгоценное пространство SSD. Помимо обычного кэша и домашнего каталога, к моему удивлению, я обнаружил, что Snap и Flatpak потребляют значительный объем дискового пространства.

Размер до очистки

 

Хотя я всегда придерживаюсь правила – не использовать Snap или Flatpak без необходимости. Это в основном из-за их размера установки и других проблем. Я предпочитаю ванильные deb и rpm-пакеты. За эти годы я установил и удалил определенное количество пакетов Snap в этой тестовой системе.

Проблема возникает после удаления; Snap сохраняет в системе некоторые остаточные файлы, неизвестные обычным пользователям.

Итак, я открыл папку Snap и обнаружил, что Snap продолжает отслеживать старые версии ранее установленных/удалённых пакетов. /var/lib/snapd/snaps

Например, на изображении ниже вы можете видеть GNOME 3.28, 3.34 и Wine – все они давно удалены. Но они все еще там. Это происходит из-за дизайна Snap, который сохраняет версии удаленных пакетов после правильного удаления.

Файлы в директории snap

В качестве альтернативы вы можете получить то же самое в терминале, используя:

snap list --all

Как почистить Snap, чтобы освободить место на диске

Значение по умолчанию — 3 для нескольких ревизий для сохранения. Это означает, что Snap сохраняет три старые версии каждого пакета, включая активную версию. Это нормально, если у вас нет ограничений на дисковое пространство.

Однако для серверов и других вариантов использования это может легко повлечь за собой финансовые проблемы, поскольку из-за этого потребляется дисковое пространство.

Однако вы можете легко изменить количество, используя следующую команду. Значение может быть от 2 до 20.

sudo snap set system refresh.retain=2

Очистить версии Snap

В посте в SuperUser Попи, бывший менеджер по инжинирингу в Canonical, представил простой скрипт , который может очистить старые версии Snaps и сохранить последнюю.

Вот скрипт, который мы будем использовать для очистки Snap.

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

Сохраните указанный выше скрипт как .sh в каталоге (например , ), дайте ему права на исполнение и запустите. clean_snap.sh

chmod +x clean_snap.sh

Когда я запустил скрипт, он значительно уменьшил дисковое пространство. Скрипт также показывал имя удаляемого пакета.

Выполнение скрипта чтобы почистить snap

Размер после очистки snap

Как почистить Snap, чтобы освободить место на диске

Заключительные замечания

Всегда ведутся споры о том, насколько эффективен дизайн Snap. Многие говорят, что он сломан по дизайну, раздут и тяжел для систем. Часть этого аргумента верна, я бы не стал этого отрицать. Вся концепция изолированных приложений великолепна, если ее правильно реализовать и улучшить. Я считаю, что Flatpak справляется лучше, чем Snap.

Тем не менее, я надеюсь, что это поможет вам очистить немного места на диске. Хотя это протестировано в Ubuntu, это должно работать во всех дистрибутивах Linux, которые поддерживают Snap.

Источник


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix.ru © Все права защищены 2015 - 2024

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!