Snap-пакеты в Linux. Что это и как с ними работать
Автор yuriy
Дата публикации: 23 августа 2019
Предыстория
Пакетная система Snap была созданная компанией Canonical и изначально появилась в дистрибутиве Ubuntu Linux. Ее смысл заключается в том, что в пакет с приложением входит полный набор компонентов, необходимых для запуска данного приложения. Такие пакеты можно устанавливать в систему не заботясь о зависимостях, так как все зависимости уже включены в пакет.
Так как идея Snap пакетов имеет множество преимуществ, снапы быстро стали популярными и теперь используются не только в Ubuntu, но и в других дистрибутивах Linux: Debian, openSUSE, Arch Linux, Gentoo, Fedora и др.
Что такое Snap-пакет
Мы привыкли устанавливать приложения из DEB и RPM пакетов. Такие пакеты содержат саму программу, но не включают зависимости, которые требуются для запуска данного приложения.
Snap-пакет — это пакет, который помимо готовой сборки самого приложения, включает в себя все необходимые зависимости и может работать (почти) в любом дистрибутиве Linux.
Когда вы устанавливаете в систему приложение из Snap-пакета, то установка не влияет на другие пакеты и приложения. То есть такое приложение работает в своей «программной среде», но при этом оно может взаимодействовать с другими программами в системе.
Система управления Snap-пакетами поддерживает автоматическое обновление установленных в системе Snap-пакетов.
Установка поддержки Snap
Для управления Snap-пакетами в Linux используется демон snapd. Для его установки необходимо установить пакет — snapd.
Пользователь использует клиент snap для управления пакетами. Клиент snap входит в состав пакета snapd.
Установка поддержки Snap в Ubuntu Linux
В новых версиях Ubuntu поддержка Snap уже включена. Если это не так, то для установки Snap в Ubuntu Linux выполните команду:
sudo apt install snapd
Аналогично выполняется установка в Debian, Linux Mint, Elementary OS и других Ubuntu/Debian-based дистрибутивах.
Установка поддержки Snap в Fedora
sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
После установки выйдите и войдите в систему.
Установка поддержки Snap в Arch Linux
sudo yaourt -S snapd
sudo systemctl enable --now snapd.socket
Работа со Snap-пакетами
Установка пакетов
Для установки пакетов используется команда snap install имя_пакета
Пример установки графического редактора GIMP из Snap-пакета:
snap install gimp
После ввода команды будет открыто окно для ввода пароля, так как требуются привилегии root-пользователя. Или используйте sudo:
sudo snap install gimp
Обновление пакетов
Для обновления пакетов используется команда snap refresh
Обновление всех установленных пакетов:
snap refresh
Обновление одного пакета:
snap refresh gimp
Удаление пакетов
Для удаления пакетов используется команда snap remove имя_пакета
snap remove gimp
Просмотр установленных пакетов
Для просмотра списка установленных пакетов используется команда snap list
snap list
Поиск пакетов
Для поиска пакетов используется команда snap find запрос
snap find gimp
Поиск выполняется не только по имени пакета, но и по описанию, поэтому можно использовать произвольный запрос:
snap find "photo editor"
Информация о пакете
Для получения информации о каком-либо пакете используется команда snap info имя_пакета
snap info gimp
Откат обновления
Если по каким-то причинам вы хотите отменить обновления, которые были выполнены над каким-либо Snap-пакетом, то можно использовать команду snap revert имя_пакета, чтобы вернуть пакет к предыдущей версии.
snap revert gimp
Временно отключить пакет
Чтобы временно отключить пакет используется команда snap disable имя_пакета
snap disable gimp
Чтобы снова сделать пакет доступным используется команда snap enable имя_пакета:
snap enable gimp
Запуск Snap-пакетов
Для запуска Snap-пакета можно использовать команду snap run имя_пакета
snap run gimp
Также приложения, установленные через Snap, можно запускать через главное меню вашего дистрибутива или лаунчер. Но данная функциональность может зависеть от конкретной системы.
Заключение
Мы кратко рассказали о том, что представляют из себя Snap-пакеты и как с ними работать. Snap-пакеты не единственные представители подобного типа пакетов в Linux. Также популярны пакеты AppImage и Flatpak.