Пакеты программного обеспечения snap - это очень удобная вещь, поскольку они позволяют один раз подготовить установочный пакет, который потом можно развернуть в любом дистрибутиве поддерживающим эту технологию, а таких дистрибутивов довольно много. Для управления пакетами snap используется специальный пакетный менеджер.
Устанавливать пакеты надо с помощью него, соответственно и удалять тоже. В этой небольшой статье мы рассмотрим как удалить snap пакет в Linux.
Удаление snap пакета
Для удаления пакета вам надо знать его имя. Если вы устанавливали пакет давно и уже не помните как точно он назывался, есть несколько способов его узнать. Если пакет был найден на snapcraft.io, можно найти его там ещё раз и нажать кнопку Install, чтобы узнать команду установки и имя пакета:
Кроме того можно просто посмотреть все установленные пакеты, обычно их не очень много, затем уже из них выбрать то, что надо удалить:
В данном случае пакет называется onenote-desktop. Для того чтобы его удалить достаточно выполнить такую команду:
sudo snap remove onenote-desktop
Это полностью удалит пакет и приложение из системы. Но есть ещё одна особенность, которая может быть вам интересной. По умолчанию пакетный менеджер snap сохраняет две предыдущие версии пакетов при обновлении. Поскольку один пакет занимает 500-700 мегабайт, это достаточно много и вы можете захотеть удалить эти пакеты. Можно попросить пакетный менеджер сохранять только одну резервную копию с помощью такой команды:
sudo snap set system refresh.retain=2
В параметры передается цифра 2. Это значит одна актуальная версия, а одна резервная. Меньше нельзя. Но если очень надо, то можно вручную удалить старые версии пакетов. Только хочу предупредить, что вы это делаете на свой страх и риск. Это может сломать систему и таким образом можно удалять только сами приложения, системные пакеты такие как core, snapd и другие трогать ни в коем случае нельзя. Сначала надо посмотреть список всех пакетов вместе с версиями, это можно сделать такой командой:
snap list --all
Обращать внимание надо на ревизии. В данном примере у меня есть две версии телеграмма, одна активная - 2398 и одна резервная (disabled) - 2391. Версию 2391 можно попробовать удалить. Для этого выполните такую команду:
snap remove telegram-desktop --revision=2391
После этого указанная ревизия будет удалена, место на диске освободится, но у вас останется рабочая версия Telegram. Хочу ещё раз предупредить, что системные пакеты трогать не стоит, это может вызвать проблемы.
Выводы
В этой статье мы рассмотрели как удалить snap пакет в Ubuntu и как удалить старые версии snap пакетов чтобы освободить память. Как видите, это очень просто.
Меня больше интересует: Как отключить автообновления snap пакетов ?
Полностью нельзя отключить, можно уменьшить кол-во обращений за обновлениями. По умолчанию snap обновляется 4 раза в сутки. Чтобы изменить частоту обновления Snap, используйте следующую команду:
sudo snap set system refresh.timer=fri,10:00~12:00
Данной командой планируем установку обновления Snap на пятницу, с 10:00 до 12:00.
Чтобы убедиться, что изменения вступили в силу, запустите команду
snap refresh --time.
Вы должны увидеть новое значение времени следующего обновления:
$ snap refresh --time
timer: fri,10:00~12:00
last: today at 12:42
next: in 2 days, at 11:10
Чтобы установить частоту обновления snap по умолчанию (4 раза в день), введите следующую команду:
sudo snap set system refresh.timer=00:00~24:00/4
Да, про таймер я читал и о том как изменить частоту обновлений
Но как отключить целиком я так и не нашел, хотя вроде бы какой то варварский метод ограничения файрволом или через hosts где то проскакивал
Т.е. лучше даже не трогать core который помечен как disabled? Просто столнулся с проблемой захламления корневой дирректории, и большая часть мусора представляет из себя disabled snap пакеты. В инете наткнулся на такую статью:https://g-soft.info/articles/8879/kak-ochistit-pakety-snap-v-linux/ . Там предлагается запуск скрипта с удалением всех disabled пакетов, в том числе и corов.