Snap пакеты в Linux
Snap пакеты содержат саму программу, а также все её зависимости. Это имеет несколько преимуществ перед обычными deb или rpm пакетами, поскольку программу можно запустить в любом дистрибутиве, а также разработчик может быть уверен, что его программа получает именно необходимые ей версии библиотек.
Установка snap
В дистрибутивах, основанных на Debian для использования snap пакетов сначала надо установить менеджер пакетов snap:
sudo apt install snapd
После установки для включения возможности установки классических приложений через snap надо создать символическую ссылку на /var/lib/snapd/snap в корне:
sudo ln -s /var/lib/snapd/snap /snap
После этого можно установить магазин приложений snap-store, или устанавливать пакеты через терминал:
sudo snap install snap-store
Удаление snap
Автоматический способ, самый простой, нужно выполнить следующую команду для полного удаления snap:
sudo snap install snap-store
С помощью этой команды мы полностью удалили не только менеджер пакетов snap, но и все связанные с ним зависимости.
Ручной способ
Первым делом нужно удалить все установленные Snap-пакеты.
Смотрим список всех пакетов:
snap list --all
Затем удалите каждый из них, используя команду со следующим синтаксисом:
sudo snap remove название_пакета
После удаления всех пакетов, отключите службу ядра snap, для этого нужно узнать фактический идентификатор менеджера пакетов, в этом поможет утилита df:
df
Теперь следует размонтирования пакет snap в системе с помощью команды:
sudo umount /snap/snapd/ваш_идентификатор
Следующим шагом нужно удалить пакет snapd, а также все его зависимости:
sudo apt autoremove --purge snapd gnome-software-plugin-snap
Напоследок требуется обновить/сбросить метаданные и очистить кэш менеджера пакетов Snap. Для этого последовательно выполните следующие команды:
pkill gnome-software
sudo rm -r /var/cache/app-info
sudo appstreamcli refresh --force --verbose
Поиск пакетов
Чтобы найти нужный пакет или посмотреть есть ли он в магазине приложений snap используйте команду find:
snap find chromium
Информация о пакете
Чтобы посмотреть информацию о пакете используйте команду info:
snap info chromium
Здесь выводится информация о том кто создал пакет, а также его описание. Для установки пакетов доступно несколько каналов:
stableсамый стабильныйbetaтестируемыйedgeверсия для разработчиков
Эта информация тоже выводится внизу вывода команды info. Здесь же выводится версия программы в канале.
Установка пакетов
Вы можете установить snap пакет в Ubuntu или любом другом дистрибутиве командой install, когда установка пакетов завершится, программа выдаст соответствующее сообщение:
sudo snap install chromium
Для установки пакета из определенного канала используйте соответствующую опцию, например --stable, --candidate, --beta или --edge. По умолчанию используется канал --stable:
sudo snap install chromium --edge
По умолчанию приложение может получить доступ только к тем частям системы, к которым у него подключены интерфейсы. Эти подключения устанавливаются автоматически во время установки пакета. Посмотреть их можно командой connections:
snap connections chromium
Уровни доступа
Иногда для приложений недостаточно обычного уровня доступа. Тогда для них используется уровень безопасности classic. В этом режиме приложение получает доступ к системным ресурсам как любые другие системные программы. Для установки таких программ надо использовать опцию --classic, иначе установить их не получится:
sudo snap install --classic atom
Есть ещё один режим безопасности, при котором приложение получает полный доступ к системе: devmode. Для установки таких программ надо использовать опцию --devmode.
Удаление пакета
Удалить snap пакет из системы очень просто. Для этого достаточно использовать команду remove:
sudo snap remove chromium
Команда полностью удалит пакет chromium и приложение из системы. Но есть ещё одна особенность, которая может быть вам интересной. По умолчанию пакетный менеджер 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
Установленные программы
Для того чтобы посмотреть все пакеты, установленные в системе используйте команду list:
snap list
Многие из программ Ubuntu и Gnome уже поставляются в виде snap и их уже нельзя установить из обычных репозиториев. С помощью опции --all можно посмотреть все доступные версии определённого пакета:
snap list --all opera
История изменений
Также вы можете посмотреть историю изменений, внесенных, в систему с помощью этого пакетного менеджера:
snap changes
Обновление пакетов
Если вы хотите обновить пакет snap, до более новой версии, выполните команду refresh, если установлена самая свежая версия вы получите сообщение об ошибке.:
sudo snap refresh opera
Для обновления всех пакетов, установленных в системе просто выполните команду refresh:
sudo snap refresh
Откатить изменения
Если обновление вам не понравилось, вы можете откатить версию всех пакетов или одного из них до предыдущей. Для этого выполните команду revert:
sudo snap revert opera


