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