Все, что вам нужно знать о Snap и Snap Store
Диспетчер пакетов – это набор интегрированных служб, которые упрощают установку, обновление, удаление и настройку пакетов / программ на компьютере.
Говоря конкретно об операционной системе Linux, вы можете выбирать из широкого спектра менеджеров пакетов, таких как APT, YUM, RPM и Pacman. Каждый из этих менеджеров пакетов имеет определенную особенность, которая отличает их друг от друга.
Однако относительно новый менеджер пакетов Snap стал жизнеспособной альтернативой традиционным менеджерам пакетов. Давайте рассмотрим Snap, его плюсы и минусы, а также то, как установить и использовать его в Linux.
Что такое Snap?
Snap – это кроссплатформенная система упаковки и развертывания, разработанная Canonical, создателями Ubuntu, для платформы Linux. Он совместим с большинством основных дистрибутивов Linux, включая Ubuntu, Debian, Arch Linux, Fedora, CentOS и Manjaro.
Snap состоит из трех основных компонентов:
1. Снимки
Как и любой другой менеджер пакетов, Snap также включает пакеты, называемые снимками. Эти пакеты, в отличие от своих аналогов из традиционных менеджеров пакетов, не зависят от зависимостей и просты в установке.
Snap заканчиваются расширением .snap , которое, по сути, представляет собой сжатую файловую систему, использующую формат SquashFS и содержащую весь модуль пакета, включая приложение, его зависимые библиотеки и дополнительные метаданные.
2. Snapd
Snapd (или демон оснастки) использует метаданные оснастки для настройки безопасной песочницы для приложений в вашей системе. Поскольку это демон, вся задача по обслуживанию и управлению средой привязки выполняется в фоновом режиме.
3. Snap Store
Снапсы находятся в Snap Store, и вы можете изучать и загружать их так же, как и другие менеджеры пакетов. Кроме того, вы также получаете возможность публиковать собственные пакеты моментальных снимков непосредственно в Snap Store, что невозможно при использовании традиционных менеджеров пакетов.
Помимо этих элементов, Snap также имеет еще один важный компонент, известный как канал . Канал отвечает за определение установленной версии оснастки и отслеживание обновлений в вашей системе. В результате, когда вы устанавливаете или обновляете снимки, вы получаете возможность указать канал, который вы хотите использовать для каждой из этих операций.
Резюмируем:
- Snap : используется для обозначения как формата пакета приложения, так и интерфейса командной строки.
- Snapd : демон Snap, который помогает управлять снимками и поддерживать их.
- Магазин Snap : Дом для всех снимков; позволяет загружать свои собственные снимки, а также исследовать и устанавливать новые снимки.
- Snapcraft : фреймворк, который помогает создавать собственные снимки.
Snap: хорошее и плохое
С тех пор, как Canonical анонсировала Snap, в сообществе Linux возникли споры о том, является ли Snap правильным подходом для улучшения распространения пакетов в Linux. Это привело к появлению двух противоборствующих лагерей: один выступает за Snap, а другой – критикует его подход в долгосрочной перспективе.
Вот разбивка всего хорошего и плохого в Snap.
Преимущества использования Snap
- Snap поставляются в комплекте с зависимостями (библиотеками), которые облегчают мгновенный доступ к программе, поскольку вам больше не нужно вручную устанавливать недостающие зависимости, чтобы заставить ее работать в вашей системе.
- Каждая оснастка запускается в своей изолированной песочнице, чтобы избежать помех другим системным пакетам. В результате, когда вы удаляете привязку, система удаляет все свои данные, включая зависимости, не затрагивая другие пакеты. Излишне говорить, что это также обеспечивает более безопасную среду, поскольку один пакет не может получить доступ к информации другого.
- Snap обновляет снимки автоматически через заданные интервалы. Следовательно, вы всегда запускаете последнюю версию программы в своей системе.
- Snap облегчает разработчикам распространение своего программного обеспечения напрямую среди пользователей, поэтому им не нужно ждать, пока их дистрибутив Linux выпустит их.
- В дополнение к предыдущему пункту, еще одно преимущество возложения на разработчиков ответственности за упаковку и распространение своего программного обеспечения заключается в том, что им не нужно создавать пакеты для конкретного дистрибутива, поскольку он поставляется вместе с необходимыми зависимостями.
Недостатки Snap
- Поскольку привязки поставляются вместе с зависимостями, они больше по размеру и занимают больше места на диске, чем их аналоги из других менеджеров пакетов.
- В результате связанных зависимостей снимки распространяются как сжатые образы файловой системы, и вам необходимо сначала смонтировать их перед установкой. Из-за этого привязки выполняются медленнее, чем традиционные пакеты.
- Хотя Snap позволяет разработчикам распространять свои снимки напрямую среди пользователей, конвейер распространения требует, чтобы они создали учетную запись в Canonical и разместили на ней свои снимки. Это противоречит истинной природе методологии с открытым исходным кодом, потому что, хотя программное обеспечение все еще является открытым исходным кодом, система управления пакетами контролируется какой-либо организацией.
- Еще одним недостатком разрешения разработчикам распространять пакеты является то, что пакеты не проходят строгих проверок и проверок со стороны сообщества и, следовательно, несут в себе риск содержать вредоносное ПО – как это было несколько лет назад.
- Из-за того, что серверная часть Snap по-прежнему имеет закрытый исходный код и контролируется Canonical, многие основные дистрибутивы Linux не поддерживают идею установки Snap в качестве диспетчера пакетов по умолчанию в своей системе.
Что касается риска вредоносных программ, Snap теперь использует автоматическое тестирование вредоносных программ для сканирования загруженных пользователями пакетов на наличие вредоносного кода перед их распространением в Snap Store.
Как установить snapd в Linux
Поскольку snapd является важным компонентом Snap, это первое, что вам нужно установить в вашей системе. Однако, если вы используете какой-либо из следующих дистрибутивов Linux, в вашей системе уже предустановлен snapd: KDE Neon, Manjaro, Ubuntu (16.04 / 4 LTS и 20.04 LTS), Zorin OS.
В случае какого-либо другого дистрибутива Linux вам потребуется установить snapd вручную.
В Debian / Ubuntu:
sudo apt update
sudo apt install snapd
Установить snapd на CentOS и другие дистрибутивы на основе RHEL очень просто:
yum install epel-release
yum install snapd
Чтобы установить snapd в Fedora:
sudo dnf install snapd
В Arch Linux:
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
Чтобы установить snapd в Manjaro Linux:
sudo pacman -S snapd
После установки вам необходимо включить модуль systemd , отвечающий за управление связью Snap в (некоторых) дистрибутивах Linux, прежде чем вы сможете использовать Snap.
Если вы используете дистрибутив Linux, отличный от Ubuntu и его производных, выполните следующую команду, чтобы включить модуль snapd systemd:
sudo systemctl enable --now snapd.socket
Наконец, перезапустите вашу систему с помощью:
sudo reboot
Как использовать Snap в Linux
Использование Snap очень похоже на использование других менеджеров пакетов. Поскольку вы установили snapd в своей системе на предыдущем шаге, теперь вы можете получить доступ к инструменту привязки и легко взаимодействовать со снимками из Snap Store.
В поисках привязки
С помощью Snap вы можете исследовать Snap Store и находить пакеты из разных категорий. Поэтому, если вы хотите искать снимки в определенной категории, используйте следующий синтаксис команды:
snap find package_category
Например:
snap find development
Если вы наткнулись на пакет и хотите узнать о нем больше, используйте метод info с командой по умолчанию.
snap info package_name
Например, чтобы извлечь информацию о привязке GIMP:
snap info gimp
Установка Snap
Наконец, когда вы найдете оснастку, которая соответствует вашим требованиям, вы можете установить ее, запустив:
sudo snap install package_name
После установки вы можете найти программу в меню « Приложения» вашего дистрибутива Linux. Затем вы можете запустить его прямо из меню или через терминал, введя его имя.
Список установленных снимков
Чтобы получить список всех установленных снимков в вашей системе:
snap list
Просмотр информации о версии снимка
Чтобы узнать текущую версию снапа, запустите:
snap list package_name
Обновление снимков
Snap автоматически обновляет пакеты, установленные в вашей системе. Чтобы облегчить это, snapd по умолчанию настроен на проверку обновлений четыре раза в день. Однако при желании вы можете изменить частоту обновления по своему усмотрению.
Более того, при необходимости вы можете выполнить мгновенное обновление, запустив:
snap refresh
Точно так же вы также можете быстро проверить наличие обновлений с помощью:
sudo snap refresh package_name
Когда вы это сделаете, Snap проверяет канал, отслеживаемый snap, на наличие более новой версии. Если доступно обновление, оно загружается и устанавливается автоматически.
Вернуться к ранее использованной версии снимка
Если у вас возникли проблемы после обновления снапа, вы можете вернуться к его предыдущей версии, запустив:
sudo snap revert package_name
Отключение и включение привязки
Если вы не используете оснастку, но она может понадобиться в будущем, вы можете временно отключить ее и снова включить при необходимости. Таким образом, вам не придется выполнять утомительный процесс удаления и повторной установки оснастки.
Чтобы отключить привязку, введите:
sudo snap disable package_name
Если вы хотите включить его, просто запустите:
sudo snap enable package_name
Удаление привязки
Наконец, чтобы удалить неиспользуемые снимки в вашей системе, которые, вероятно, вам не понадобятся в будущем:
sudo snap remove package_name
Успешная установка Snap в Linux
Если вы до сих пор следовали руководству, у вас уже будет Snap и он будет работать в вашей системе Linux. И впоследствии вы сможете найти и загрузить большинство необходимых пакетов. Конечно, как и в случае с любым другим менеджером пакетов, вам может потребоваться некоторое время, чтобы освоиться со Snap. Но как только вы освоите его, вы сможете эффективно использовать его.
Тем не менее, у использования Snap есть как преимущества, так и недостатки, которые вы должны принять во внимание перед тем, как начать. Если вам нужна альтернатива Snap – та, которая хорошо сочетается с методологией бесплатного использования с открытым исходным кодом – проверьте Flatpaks, чтобы лучше понять, какой менеджер пакетов имеет лучшее хранилище для загрузки приложений Linux.