Руководство для начинающих по Snaps в Linux – Часть 1

Управление пакетами в Linux-системах в последние несколько лет значительно улучшилось, особенно в том, что касается универсального или кросс-дистрибутивного упаковывания и распространения программного обеспечения. Одним из таких улучшений является формат пакетов Snap, разработанный Canonical, создателями популярного Ubuntu Linux.

Что такое Snap Packages?

Snaps — это кроссплатформенные, независимые от зависимостей и простые в установке приложения, упакованные со всеми своими зависимостями, чтобы работать на всех основных дистрибутивах Linux. На основе одной сборки snap (приложение) будет работать на всех поддерживаемых дистрибутивах Linux на настольном компьютере, в облаке и в Интернете вещей. В число поддерживаемых дистрибутивов входят Ubuntu, Debian, Fedora, Arch Linux, Manjaro и CentOS/RHEL.

Snaps безопасны, они изолированы и работают в песочнице, чтобы не подвергать риску всю систему. Они работают на разных уровнях изоляции (степень изоляции от базовой системы и друг от друга). Более того, каждый snap имеет интерфейс, тщательно выбранный создателем snap в соответствии с требованиями snap, для предоставления доступа к конкретным системным ресурсам за пределами их изоляции, таким как доступ к сети, доступ к рабочему столу и многое другое.

Ещё одним важным концептом в экосистеме snap являются Каналы. Канал определяет, какая версия snap установлена и отслеживается для обновлений, и состоит из и подразделяется на дорожки, уровни риска и ветви.

Основные компоненты системы управления пакетами snap:

  • snapd – фоновый сервис, управляющий и поддерживающий ваши snap в системе Linux.
  • snap – как формат пакета приложения, так и интерфейс командной строки для установки и удаления snap и выполнения многих других операций в экосистеме snap.
  • snapcraft – фреймворк и мощный инструмент командной строки для сборки snap.
  • Магазин snap – место, где разработчики могут делиться своими snap, а пользователи Linux их искать и устанавливать.

Кроме того, snap также обновляются автоматически. Вы можете настроить, когда и как происходят обновления. По умолчанию демон snapd проверяет обновления до четырёх раз в день: каждая проверка обновлений называется обновлением. Вы также можете вручную инициировать обновление.

Как установить Snapd в Linux

Как описано выше, демон snapd является фоновым сервисом, управляющим и поддерживающим вашу snap-среду в системе Linux, реализуя политики ограничения и контролируя интерфейсы, позволяющие snap получать доступ к конкретным ресурсам системы. Он также предоставляет команду snap и выполняет множество других функций.

Чтобы установить пакет snapd на вашу систему, выполните соответствующую команду для вашего дистрибутива Linux.

------------ [On Debian and Ubuntu] ------------ 
$ sudo apt update 
$ sudo apt install snapd

------------ [On Fedora Linux] ------------
# dnf install snapd			

------------ [On CentOS and RHEL] ------------
# yum install epel-release 
# yum install snapd		

------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------
$ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy
$ sudo zypper --gpg-auto-import-keys refresh
$ sudo zypper dup --from snappy
$ sudo zypper install snapd

------------ [On Manjaro Linux] ------------
# pacman -S snapd

------------ [On Arch Linux] ------------
# git clone https://aur.archlinux.org/snapd.git
# cd snapd
# makepkg -si

После установки snapd на вашу систему, активируйте юнит systemd, управляющий основным сокетом snap, с помощью команды systemctl следующим образом.

На Ubuntu и его производных это должно произойти автоматически при установке пакета.

$ sudo systemctl enable --now snapd.socket

Обратите внимание, что вы не можете выполнить команду snap, если сокет snapd.socket не запущен. Выполните следующие команды, чтобы проверить, активен ли он и настроен ли для автоматического запуска при загрузке системы.

$ sudo systemctl is-active snapd.socket
$ sudo systemctl status snapd.socket
$ sudo systemctl is-enabled snapd.socket
Check Snapd Service Status

Затем активируйте поддержку классических snap, создав символическую ссылку между /var/lib/snapd/snap и /snap следующим образом.

$ sudo ln -s /var/lib/snapd/snap /snap

Чтобы проверить версию snapd и инструмента командной строки snap, установленных на вашей системе, выполните следующую команду.

$ snap version 
Check Snapd and Snap Version

Как установить Snaps в Linux

Команда snap позволяет устанавливать, настраивать, обновлять и удалять snap, а также взаимодействовать с более крупной экосистемой snap.

Перед установкой snap вы можете проверить его наличие в магазине snap. Например, если приложение относится к категории “серверы чата” или “медиаплееры”, вы можете запустить эти команды для поиска, которые запросят магазин на наличие доступных пакетов в стабильном канале.

$ snap find "chat servers"
$ snap find "media players"
Find Applications in Snap Store

Чтобы отобразить подробную информацию о snap, например, rocketchat-server, вы можете указать его имя или путь. Обратите внимание, что имена ищутся как в магазине snap, так и в установленных snap.

$ snap info rocketchat-server
Get Info About Application in Snap

Чтобы установить snap на вашу систему, например, rocketchat-server, выполните следующую команду. Если не указаны параметры, snap устанавливается с отслеживанием канала “стабильный” с строгой безопасностью.

$ sudo snap install rocketchat-server
Install Application from Snap Store

Вы можете выбрать установку из другого канала: edge, beta или candidate, по какой-то причине, используя опции --edge, --beta или --candidate соответственно. Или используйте опцию --channel и укажите канал, из которого хотите установить.

$ sudo snap install --edge rocketchat-server        
$ sudo snap install --beta rocketchat-server
$ sudo snap install --candidate rocketchat-server

Управление Snap в Linux

В этом разделе мы узнаем, как управлять snap в системе Linux.

Просмотр установленных Snap

Для отображения сводки установленных snaps на вашей системе используйте следующую команду.

$ snap list
List Installed Snaps

Чтобы перечислить текущую ревизию используемой снепшот, укажите его имя. Вы также можете перечислить все доступные ревизии, добавив опцию --all.

$ snap list mailspring
OR
$ snap list --all mailspring
List All Installation Versions of Snap

Обновление и возврат к предыдущим версиям Снепшотов

Вы можете обновить указанный снепшот или все снепшоты в системе, если не указаны никакие, следующим образом. Команда refresh проверяет канал, отслеживаемый снепшотом, и загружает и устанавливает новую версию снепшота, если она доступна.

$ sudo snap refresh mailspring
OR
$ sudo snap refresh		#update all snaps on the local system
Refresh a Snap

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

$ sudo snap revert mailspring
Revert a Snap to Older Version

Теперь, когда вы проверяете все ревизии mailspring, последняя ревизия отключена, ранее использованная ревизия снова активна.

$ snap list --all mailspring
Check Revision of Snap

Отключение/Включение и удаление снепшотов

Вы можете отключить снепшот, если не хотите его использовать. При отключении бинарные файлы и службы снепшота больше не будут доступны, однако все данные останутся на месте.

$ sudo snap disable mailspring

Если вам снова понадобится использовать снепшот, вы можете включить его обратно.

$ sudo snap enable mailspring

Чтобы полностью удалить снепшот из вашей системы, используйте команду remove. По умолчанию удаляются все ревизии снепшота.

$ sudo snap remove mailspring

Чтобы удалить определенную ревизию, используйте опцию --revision следующим образом.

$ sudo snap remove  --revision=482 mailspring

Важно отметить, что при удалении snap его данные (такие как внутренние пользовательские, системные и конфигурационные данные) сохраняются snapd (версия 2.39 и выше) в виде снимка и хранятся в системе в течение 31 дня. В случае повторной установки снапа в течение 31 дня вы можете восстановить данные.

Заключение

Снапы становятся все более популярными в сообществе Linux, поскольку они предоставляют простой способ установки программного обеспечения на любое распределение Linux. В этом руководстве мы показали, как устанавливать и работать с снапами в Linux. Мы рассмотрели, как установить snapd, установить снапы, просмотреть установленные снапы, обновить и откатить снапы, а также отключить/включить и удалить снапы.

Вы можете задавать вопросы или связаться с нами через форму обратной связи ниже. В следующей части этого руководства мы рассмотрим управление снапами (команды, псевдонимы, службы и снимки) в Linux.

Source:
https://www.tecmint.com/install-snap-in-linux/