Найти в Дзене
Обыватель

Шпаргалки Debian. Как очистить Snap от старых версий пакетов

Если вы пользуетесь Snap, то рано или позно вам придется задуматься об очистке системы о устаревших snap пакетов. Позвольте мне поделиться с вами изящным приемом, который может помочь вам сократить объем дискового пространства, занимаемого пакетами Snap. Системные файлы, связанные с snap, хранятся в каталоге /var/lib/snapd. В зависимости от количества установленных вами пакетов Snap размер этого каталога может составлять несколько гигабайт. Проверить размер директории можно при помощи команды du. ~$ sudo du -sh /var/lib/snapd
2,6G    /var/lib/snapd Snap сохраняет как минимум одну более старую версию пакетов, установленных вами в вашей системе. Можете убедиться в этом используя следующую команду: snap list --all Вы увидите, что в списке присутствует один и тот же пакет дважды, но с разной версией и номером редакции. Чтобы освободить место на диске, вы можете удалить ненужные версии пакетов. Но как узнать, какой пакет удалять? Обратите внимание, что старые пакеты помечены как "disabled

Если вы пользуетесь Snap, то рано или позно вам придется задуматься об очистке системы о устаревших snap пакетов.

Позвольте мне поделиться с вами изящным приемом, который может помочь вам сократить объем дискового пространства, занимаемого пакетами Snap.

Системные файлы, связанные с snap, хранятся в каталоге /var/lib/snapd. В зависимости от количества установленных вами пакетов Snap размер этого каталога может составлять несколько гигабайт.

Проверить размер директории можно при помощи команды du.

~$ sudo du -sh /var/lib/snapd
2,6G    /var/lib/snapd

Snap сохраняет как минимум одну более старую версию пакетов, установленных вами в вашей системе.

Можете убедиться в этом используя следующую команду:

snap list --all

Вывод snap списка snap пакетов
Вывод snap списка snap пакетов

Вы увидите, что в списке присутствует один и тот же пакет дважды, но с разной версией и номером редакции.

Чтобы освободить место на диске, вы можете удалить ненужные версии пакетов. Но как узнать, какой пакет удалять? Обратите внимание, что старые пакеты помечены как "disabled" (отключённые).

Не волнуйтесь. Вам не нужно делать это вручную. Существует автоматический способ сделать это благодаря bash-скрипту, написанному Аланом Поупом, когда он работал в команде Snapcraft.

Создайте новый файл с именем clean-snap.sh и добавьте к нему следующие строки:

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

Сохраните его и закройте редактор. Сделайте файл исполняемым. Затем перейдите в консоли в каталог со скриптом и введите команду:

sudo ./clean-snap.sh

Результат удаления старых пакетов
Результат удаления старых пакетов

Проверим занимаемое место пакетами после чистки:

~$ sudo du -sh /var/lib/snapd
2,0G    /var/lib/snapd

Как видно, место занимаемое пакетами, уменьшилось.

Если этот способ вам помог освободить немного места, дайте знать в комментариях!