рекомендации

понедельник, 8 марта 2021 г.

Введение в пакеты Snap для начинающих, часть 1

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

Что такое пакеты Snap?

Snap -это кросс-дистрибутивные, свободные от зависимостей и простые в установке приложения, упакованными со всеми их зависимостями для работы во всех основных дистрибутивах Linux. Однажды собранный пакет snap будет работать во всех поддерживаемых дистрибутивах Linux на настольных компьютерах, в облаке и в интернете вещей. Поддерживаемые дистрибутивы включают Ubuntu, Debian, Fedora, Arch Linux, Manjaro и CentOS/RHEL.

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

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

Основными компонентами системы управления пакетами snap являются:
  • snapd - фоновая служба, которая управляет и обслуживает ваши snap в системе Linux.
  • snap - как формат пакета приложения, так и утилита командной строки, используемая для установки и удаления пакетов и многих других действий в экосистеме snap.
  • snapcraft - фреймворк и мощный инструмент командной строки для создания snap.
  • snap store - место, где разработчики могут делиться своими пакетами, а пользователи Linux находят и устанавливают их.
Кроме того, пакеты snap также обновляются автоматически. Вы можете настроить, когда и как происходят обновления. По умолчанию демон snapd проверяет наличие обновлений до четырех раз в день: каждая проверка обновлений называется refresh. Вы также можете запустить обновление вручную.

Установка 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

Затем включите поддержку snap, создав символическую ссылку между /var/lib/snapd/snap и /snap следующим образом.
$ sudo ln -s /var/lib/snapd/snap /snap
Чтобы проверить версию snapd и инструмента командной строки snap, установленную в вашей системе, выполните следующую команду.
$ snap version 

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

Перед установкой пакета snap вы можете проверить, есть ли он в snap store. Например, если приложение относится к категории «chat servers» или «media players», вы можете запустить следующие команды для его поиска, которые запросят в store доступные пакеты в стабильном канале.
$ snap find "chat servers"
$ snap find "media players"

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

Чтобы установить snap в вашей системе, например rocketchat-server, выполните приведенную ниже команду. Если никаких опций не предусмотрено, устанавливается snap из «стабильного» канала со строгими ограничениями безопасности.
$ sudo snap install rocketchat-server

Вы можете выбрать установку из другого канала: 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 list

Чтобы отобразить текущую версию используемого пакета, укажите его имя. Вы также можете вывести все его доступные версии, добавив параметр --all.
$ snap list mailspring
OR
$ snap list --all mailspring


Обновление и откат пакетов

Вы можете обновить указанный пакет или все пакеты в системе, если ни один из них не указан в команде. Команда refresh проверяет канал, отслеживаемый пакетом, и загружает и устанавливает более новую версию пакета, если она доступна.
$ sudo snap refresh mailspring
OR
$ sudo snap refresh		#update all snaps on the local system

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

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


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

Вы можете отключить пакет, если не хотите его использовать. При отключении двоичные файлы и службы пакета snap больше не будут доступны, однако все данные сохранятся.
$ sudo snap disable mailspring
Если вам нужно снова использовать пакет, вы можете снова включить его.
$ sudo snap enable mailspring
Чтобы полностью удалить пакет из вашей системы, используйте команду remove. По умолчанию удаляются все редакции пакета.
$ sudo snap remove mailspring
Чтобы удалить конкретную ревизию, используйте параметр --revision следующим образом.
$ sudo snap remove  --revision=482 mailspring
Важно отметить, что когда вы удаляете пакет, его данные (такие как внутренний пользователь, система и данные конфигурации) сохраняются snapd (версии 2.39 и выше) в виде снимка и хранятся в системе в течение 31 дня. Если вы переустановите пакет в течение 31 дня, вы сможете восстановить данные.

Заключение

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

Комментариев нет:

Отправить комментарий