Snap Linux что это такое

Обновлено: 21.11.2024

Snap — это система развертывания программного обеспечения и управления пакетами. Пакеты называются snaps, а инструментом для их использования является snapd, который работает с целым рядом дистрибутивов Linux и, следовательно, позволяет развертывать исходное программное обеспечение независимо от дистрибутива. Изначально Snap был разработан и создан компанией Canonical.

snapd — это демон REST API для управления пакетами моментальных снимков. Пользователи могут взаимодействовать с ним с помощью клиента snap, который является частью того же пакета.

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

Содержание

Установка

Совет: snapd устанавливает скрипт в /etc/profile.d/snapd.sh для экспорта путей к двоичным файлам, установленным вместе с пакетом snapd, и записей рабочего стола. Перезагрузитесь один раз, чтобы изменения вступили в силу.

Если вы используете AppArmor, включите и запустите как apparmor.service, так и snapd.apparmor.service .

Примечание. Если AppArmor не включен в вашей системе, все снимки будут работать в режиме devel, что означает, что они будут иметь такой же неограниченный доступ к вашей системе, как и приложения, установленные из репозиториев Arch Linux.

Конфигурация

Чтобы запустить демон snapd, когда snap пытается его использовать, запустите и/или включите snapd.socket .

Использование

Инструмент Snap используется для управления снимками.

Поиск

Чтобы найти оснастки для установки, вы можете запросить Магазин Ubuntu с помощью:

Установка

Найдя нужный снап, вы можете установить его с помощью:

Для этого требуются привилегии root. Установка снимков для каждого пользователя пока невозможна. При этом оснастка будет загружена в /var/lib/snapd/snaps и смонтирована в /var/lib/snapd/snap/имя_привязки, чтобы сделать ее доступной для системы.

Он также создаст единицы монтирования для каждого снапа и добавит их в /etc/systemd/system/multi-user.target.wants/ в качестве символических ссылок, чтобы сделать все снапы доступными при загрузке системы. Как только это будет сделано, вы должны найти его в списке установленных снимков вместе с номером версии, ревизией и разработчиком, используя:

Вы также можете загружать снимки с локального жесткого диска с помощью:

Обновление

Чтобы обновить снимки вручную, используйте:

Snap обновляются автоматически в соответствии с настройкой snap refresh.timer.

Чтобы просмотреть время следующего/последнего обновления, используйте:

Чтобы установить другое время обновления, например. два раза в день:

Дополнительную информацию о настройке времени обновления см. на странице документации по параметрам системы.

Удаление

Привязки можно удалить, выполнив:

Советы и рекомендации

Классические снимки

Некоторые снимки (например, Skype и Pycharm) используют классическое ограничение. Однако для классического ограничения требуется каталог /snap, который не соответствует стандарту FHS. Пакет snapd не поставляет этот каталог, однако пользователь может вручную создать символическую ссылку между /var/lib/snapd/snap и /snap, чтобы разрешить установку классических снимков:

Заключение

При использовании AppArmor snapd будет генерировать те же профили для снимков, что и в Ubuntu. Анализатор AppArmor достаточно умен, чтобы отбрасывать правила, которые еще не поддерживаются основным ядром.

Чтобы убедиться, что базовое ограничение работает, установите оснастку hello-world. Затем выполните следующее:

Отказ был вызван AppArmor и должен быть зарегистрирован:

Если вы не видите отказ, убедитесь, что профили были загружены:

Кроме того, вы можете проверить, какие функции песочницы доступны в системе в соответствии с snapd:

Устранение неполадок

Текст не читается

Если вы видите квадраты вместо читаемых символов, вам необходимо очистить кэш шрифтов:

Snapctl также хранит внутренние кеши для каждого отдельного снимка, которые необходимо очищать отдельно. Сначала найдите их, запустив:

Затем либо удалите их по отдельности, либо используйте этот простой цикл.

Наконец, перезапустите сеанс.

Ошибка: невозможно смонтировать squashfs

Пакеты Snap используют файловую систему SquashFS. В случае ошибки, подобной следующей:

вы можете убедиться, что модуль ядра SquashFS загружен

Совет: если вы недавно установили пакет snapd в свою систему, вам может потребоваться перезагрузить Arch Linux перед установкой пакетов Snap.

Графическое управление

Фактическая точность этой статьи или раздела оспаривается.

И Gnome Software Center, и KDE Discover могут обеспечить встроенную поддержку моментальных снимков. Для KDE Discover установите пакет discovery-snap AUR.

Snap Store можно установить через snap

Поддержка

Списки рассылки, связанные с Arch Linux, и другие официальные каналы поддержки Arch Linux не являются подходящим местом для запроса помощи со снимками в Arch Linux. Подходящим местом для обращения за поддержкой является форум Snapcraft.

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

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

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

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

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

  • snapd — фоновая служба, которая управляет вашими снимками в системе Linux и поддерживает их.
  • snap — как формат пакета приложения, так и инструмент интерфейса командной строки, используемый для установки и удаления моментальных снимков, а также для выполнения многих других действий в экосистеме моментальных снимков.
  • Snapcraft — платформа и мощный инструмент командной строки для создания снимков.
  • Snap Store — место, где разработчики могут делиться своими снимками, а пользователи Linux могут их искать и устанавливать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Управление снимками в Linux

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

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

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

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

Обновление и откат снимков

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

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

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

Отключение/включение и удаление привязки

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

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

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

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

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

Заключение

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

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие сообщения

10 мыслей о «Руководстве для начинающих по Snaps в Linux — часть 1»

Да, наверное, новичка в Linux больше всего сбивает с толку то, как, черт возьми, вы устанавливаете приложения и почему такая разница между дистрибутивами? Это должно сбивать с толку тех, кто пришел из Windows и установил большинство вещей из загрузки или, возможно, из магазина приложений Microsoft.

Было бы неплохо вместо того, чтобы заново изобретать еще один способ сделать что-то. Может быть, просто консолидировать ресурсы в существующей системе. Но опять же, речь идет об экосистеме, которая разрабатывает сотни дистрибутивов. Кто-нибудь когда-нибудь задумывался о том, что, возможно, Linux на рабочем столе может быть более привлекательным при меньшем выборе??

"Кто-нибудь когда-нибудь задумывался о том, что, возможно, Linux для настольных ПК может быть более привлекательным с меньшим количеством вариантов??"

У многих людей есть. К сожалению, ни один из них не занимает руководящих должностей. Кроме того, существует философия Linux «каждый занимается своим делом» и «чем больше, тем лучше».

Когда дело доходит до Snaps, есть еще один фактор: Canonical и Марк Шаттлворт хотят иметь собственную версию программного обеспечения, чтобы иметь возможность им управлять. Mir, Unity, Snaps и многие другие проекты только для Canonical.

"Может быть, просто консолидировать ресурсы в существующей системе".

Было бы здорово. Linux может быть лучше, чем Windows или OS/X. Но тогда каждый Том, Дик и/или Гарри не получат свои 15 минут «славы». Выбор — это самая большая сила Linux, но также и его самая большая ахиллесова пята.

Всего за несколько шагов вы получите пример приложения C/C++ в Snap Store.

Вот как dosbox определяет snapcraft.yaml:

Почему снимки хороши для проектов Electron?

  • Snaps легко обнаружить и установить. Миллионы пользователей могут просматривать и устанавливать снимки в графическом виде в магазине Snap Store или из командной строки.
  • Snaps устанавливаются и работают одинаково в Linux. Они объединяют Electron и все зависимости вашего приложения, будь то модули Node или системные библиотеки.
  • Snaps автоматически обновляются до последней версии. Четыре раза в день системы пользователей проверяют наличие новых версий и выполняют обновление в фоновом режиме.
  • Обновления не мешают работе. Поскольку обновления не выполняются на месте, пользователи могут оставить ваше приложение открытым, пока оно обновляется в фоновом режиме.
  • Обновления безопасны. Если ваше приложение не обновляется, пользователи автоматически возвращаются к предыдущей версии.

Всего за несколько шагов вы получите пример приложения Electron в Snap Store.

Вот как использовать его с электронным быстрым запуском:

Почему снимки хороши для проектов Flutter?

  • Snaps легко обнаружить и установить. Миллионы пользователей могут просматривать и устанавливать снимки в графическом виде в магазине Snap Store или из командной строки.
  • Snaps устанавливаются и работают одинаково в Linux. Они объединяют точные версии зависимостей вашего приложения.
  • Snaps автоматически обновляются до последней версии. Четыре раза в день системы пользователей проверяют наличие новых версий и выполняют обновление в фоновом режиме.
  • Обновления не мешают работе. Поскольку обновления не выполняются на месте, пользователи могут оставить ваше приложение открытым, пока оно обновляется в фоновом режиме.
  • Обновления безопасны. Если ваше приложение не обновляется, пользователи автоматически возвращаются к предыдущей версии.

Всего за несколько шагов вы получите пример приложения Flutter в Snap Store.

Вот как super-cool-app определяет snapcraft.yaml:

Почему снимки хороши для проектов Go?

  • Миллионы легко обнаруживают и устанавливают каждый день с помощью Snap Store или командной строки.
  • Автоматическое обновление до последней стабильной версии вашего приложения
  • Возврат к предыдущей версии в случае сбоя обновления с сохранением данных

Программирование на Go упрощает создание ZIP-файла вашего приложения, работающего в Linux без каких-либо зависимостей. Однако обнаружение конечными пользователями и управление обновлениями остаются проблемой.Snap заполняют этот пробел, позволяя распространять приложение Go в магазине приложений для конечных пользователей.

Всего за несколько шагов вы получите пример приложения Go в Snap Store.

Почему снимки хороши для проектов Java?

  • Упростите инструкции по установке независимо от дистрибутива, чтобы мгновенно установить myjavaapp.
  • Напрямую контролируйте доставку автоматических обновлений приложений.

Распространение приложения Java для Linux и охват максимально широкой аудитории — сложная задача. Как правило, пользователь должен убедиться, что версия JRE/SDK и их среда настроены правильно. Когда дистрибутив Linux изменяет поставленную JRE, это может быть проблематично для приложений. Snapcraft гарантирует, что вместе с приложением всегда будет поставляться правильный JRE.

Всего за несколько шагов вы получите пример приложения Java в Snap Store.

Вот как freeplane определяет snapcraft.yaml:

Почему снимки хороши для проектов MOOS?

  • Объедините все требования к среде выполнения, включая точную версию MOOS/MOOS-IvP и системные библиотеки, которые вам нужны.
  • Напрямую и надежно контролируйте доставку обновлений приложений, используя существующую инфраструктуру.
  • Обновления безопасны. Если ваше приложение не обновляется, пользователи автоматически возвращаются к предыдущей версии.
  • Чрезвычайно простое создание демонов.

Всего за несколько шагов вы получите пример приложения MOOS в Snap Store.

Вот пример файла snapcraft.yaml, в котором используется MOOS:

Почему снимки хороши для проектов Node.js?

  • Миллионы легко обнаруживают и устанавливают каждый день с помощью Snap Store или командной строки.
  • Автоматическое обновление до последней стабильной версии вашего приложения.
  • Возврат к предыдущей версии в случае сбоя обновления с сохранением данных.

С помощью npm вы можете распространять приложения среди других разработчиков, но он не предназначен для конечных пользователей. Snap позволяют распространять приложение Node через магазин приложений.

Всего за несколько шагов вы получите пример приложения Node.js в Snap Store.

Вот как wethr определяет snapcraft.yaml:

Почему снимки хороши для готовых приложений?

  • Миллионы легко обнаруживают и устанавливают каждый день с помощью Snap Store или командной строки.
  • Автоматическое обновление до последней стабильной версии вашего приложения
  • Возврат к предыдущей версии в случае сбоя обновления с сохранением данных
  • Изоляция гарантирует отсутствие конфликтов между приложениями.
  • Идентичное поведение в дистрибутивах Linux, даже с зависимостями библиотек

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

Всего за несколько шагов вы получите готовый пример приложения в Snap Store.

Как geekbench4 определяет snapcraft.yaml

Почему снимки хороши для проектов Python?

  • Миллионы легко обнаруживают и устанавливают каждый день с помощью Snap Store или командной строки.
  • Автоматическое обновление до последней стабильной версии вашего приложения
  • Возврат к предыдущей версии в случае сбоя обновления с сохранением данных
  • Изоляция гарантирует отсутствие конфликтов между приложениями.
  • Идентичное поведение в дистрибутивах Linux, даже с зависимостями библиотек

С помощью PyPI вы можете распространять приложения среди других разработчиков, но они не предназначены для конечных пользователей. Virtualenv позволяет вам устанавливать зависимости приложения изолированно, но он не используется автоматически для установки из PyPI. Snap позволяют распространять изолированное от зависимостей приложение Python в магазине приложений для конечных пользователей.

Всего за несколько шагов вы получите пример приложения Python в Snap Store.

Вот как offlineimap определяет snapcraft.yaml:

Почему снимки хороши для проектов ROS?

  • Объедините все требования к среде выполнения, включая точную версию ROS и системных библиотек, которые вам нужны.
  • Расширьте список поддерживаемых дистрибутивов, помимо Ubuntu.
  • Напрямую и надежно контролируйте доставку обновлений приложений, используя существующую инфраструктуру.
  • Чрезвычайно простое создание демонов.

Всего за несколько шагов вы получите пример приложения ROS в Snap Store.

Вот пример snapcraft.yaml, использующий ROS:

Почему снимки хороши для проектов ROS2?

  • Объедините все требования к среде выполнения, включая точную версию ROS и системных библиотек, которые вам нужны.
  • Расширьте список поддерживаемых дистрибутивов, помимо Ubuntu.
  • Напрямую и надежно контролируйте доставку обновлений приложений, используя существующую инфраструктуру.
  • Чрезвычайно простое создание демонов.

Всего за несколько шагов вы получите пример приложения ROS2 в Snap Store.

Вот пример snapcraft.yaml, использующий ROS2:

Почему снимки хороши для проектов Ruby?

  • Объедините все требования среды выполнения.
  • Упростите инструкции по установке независимо от дистрибутива, чтобы мгновенно установить myrubyapp.
  • Напрямую контролируйте доставку автоматических обновлений приложений.
  • Чрезвычайно простое создание сервисов.

Инструкции по установке приложений Ruby в Linux часто усложняются. Чтобы предотвратить конфликты модулей из разных приложений Ruby друг с другом, необходимо использовать инструменты разработчика, такие как rvm или rbenv. С помощью snapcraft достаточно одной команды создать пакет, который будет работать где угодно.

Всего за несколько шагов вы получите пример приложения Ruby в Snap Store.

Вот как это использует mdl:

Почему снимки хороши для проектов на Rust?

  • Миллионы легко обнаруживают и устанавливают каждый день с помощью Snap Store или командной строки.
  • Автоматическое обновление до последней стабильной версии вашего приложения.
  • Возврат к предыдущей версии в случае сбоя обновления с сохранением данных.

Вы можете распространять свои приложения в Linux, используя версию Rust с поддержкой musl, со всеми необходимыми зависимостями. Однако обнаружение конечными пользователями и управление обновлениями остаются проблемой. Snap заполняют этот пробел, позволяя распространять приложение Rust в магазине приложений для конечных пользователей.

Всего за несколько шагов вы получите пример приложения Rust в Snap Store.

Вот как xsv определяет snapcraft.yaml:

Отзывы

"Функция автообновления огромна"

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

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

Джефф Дики,
инженер CLI, Heroku

«Начать со снимков легко»

«Основной инструмент для обнаружения программного обеспечения»

Магазин Snap обеспечивает дополнительный доступ к нашим инструментам для многих наших существующих и потенциальных пользователей. Решение использовать его пришло совершенно естественно. Мы считаем, что магазин станет основным инструментом поиска программного обеспечения для Linux, поэтому чем больше людей узнают о наших инструментах естественным образом и упростят их установку, тем лучше для всех.

Алексей Ростовский
Инженер, JetBrains

Одна сборка
для всех Linux и IoT

Снэпы работают в Linux в любом дистрибутиве или версии. Объедините свои зависимости и активы, упростив установку одной стандартной командой.

Потрясен крутой кривой обучения менеджеров пакетов командной строки? Начните работу со 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 также содержит пакеты, называемые Snaps. Эти пакеты, в отличие от своих аналогов из традиционных менеджеров пакетов, не зависят от зависимостей и просты в установке.

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

2. Снимок

Snapd (или демон snap) использует метаданные snap для настройки безопасной изолированной программной среды для приложений в вашей системе. Поскольку это демон, вся задача поддержки и управления средой Snap выполняется в фоновом режиме.

3. Snap Store

Snap находятся в Snap Store, и вы можете просматривать и загружать их так же, как и другие менеджеры пакетов. Кроме того, вы также получаете возможность публиковать свои собственные пакеты моментальных снимков непосредственно в Snap Store, что невозможно при использовании традиционных менеджеров пакетов.

Помимо этих элементов, Snap также имеет еще один важный компонент, известный как канал.Канал отвечает за определение того, какая версия Snap установлена ​​и отслеживается для обновлений в вашей системе. В результате, когда вы устанавливаете или обновляете снимки, вы получаете возможность указать канал, который вы хотите использовать для каждой из этих операций.

Snap: хорошее и плохое

С тех пор, как Canonical анонсировала Snap, в сообществе Linux возник вопрос о том, является ли Snap правильным подходом к улучшению распространения пакетов в Linux. Это породило два противоборствующих лагеря: один поддерживает Snap, а другой критикует его подход в долгосрочной перспективе.

Вот все, что хорошего и плохого в Snap.

Преимущества использования Snap

  1. Snaps поставляются в комплекте с зависимостями (библиотеками), которые упрощают мгновенный доступ к программе, поскольку вам больше не нужно вручную устанавливать отсутствующие зависимости, чтобы заставить ее работать в вашей системе.
  2. Каждый моментальный снимок выполняется в отдельной контейнерной песочнице, чтобы не мешать другим системным пакетам. В результате при удалении снапа система удаляет все его данные, включая зависимости, не затрагивая другие пакеты. Излишне говорить, что это также обеспечивает более безопасную среду, поскольку один пакет не может получить доступ к информации другого.
  3. Snap обновляет снимки автоматически через заданные промежутки времени. Следовательно, вы всегда запускаете последнюю версию программы в своей системе.
  4. Snap упрощает для разработчиков распространение своего программного обеспечения непосредственно среди пользователей, поэтому им не нужно ждать, пока их дистрибутив Linux развернет их.
  5. Добавляя к предыдущему пункту, еще одним преимуществом предоставления разработчикам ответственности за упаковку и распространение своего программного обеспечения является то, что им не нужно создавать пакеты для конкретных дистрибутивов, поскольку они поставляются в комплекте с необходимыми зависимостями.

Недостатки Snap

  1. Поскольку моментальные снимки связаны с зависимостями, они больше по размеру и занимают больше места на диске, чем их аналоги из других менеджеров пакетов.
  2. Из-за связанных зависимостей снимки распространяются как сжатые образы файловой системы, и перед установкой их необходимо смонтировать. Из-за этого снимки выполняются медленнее, чем традиционные пакеты.
  3. Хотя Snap позволяет разработчикам распространять свои снимки напрямую среди пользователей, конвейер распространения требует, чтобы они создали учетную запись в Canonical и разместили в ней свои снимки. Это противоречит истинной природе методологии открытого исходного кода, поскольку, несмотря на то, что исходный код программного обеспечения остается открытым, система управления пакетами контролируется организацией.
  4. Еще один недостаток разрешения разработчикам распространять пакеты заключается в том, что пакеты не проходят строгие проверки и проверки со стороны сообщества и, следовательно, могут содержать вредоносное ПО, как это наблюдалось несколько лет назад.
  5. Из-за того, что серверная часть 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 вручную.

Установить snapd на CentOS и другие дистрибутивы на базе RHEL очень просто:

Чтобы установить snapd в Fedora:

Чтобы установить snapd в Manjaro Linux:

После установки вам необходимо включить модуль systemd, отвечающий за управление связью Snap в (некоторых) дистрибутивах Linux, прежде чем вы сможете использовать Snap.

Если вы используете дистрибутив Linux, отличный от Ubuntu и его производных, выполните следующую команду, чтобы включить модуль snapd systemd:

Наконец, перезагрузите систему с помощью:

Как использовать Snap в Linux

Использование Snap очень похоже на использование других менеджеров пакетов. Поскольку вы установили Snapd в свою систему на предыдущем шаге, теперь вы можете получить доступ к инструменту Snap и легко взаимодействовать со Snap из Snap Store.

Поиск снапа

С помощью Snap вы можете просматривать Snap Store и находить пакеты в разных категориях. Поэтому, если вы хотите искать снимки в определенной категории, используйте следующий синтаксис команды:

Если вы наткнулись на пакет и хотите узнать о нем больше, используйте метод info с командой по умолчанию.

Например, чтобы извлечь информацию о снимке GIMP:

Установка Snap

Наконец, когда вы найдете оснастку, соответствующую вашим требованиям, вы можете установить ее, выполнив:

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

Список установленных снапов

Чтобы получить список всех установленных снимков в вашей системе:

Просмотр информации о версии Snap

Чтобы узнать текущую версию снимка, выполните:

Обновление снимков

Snap автоматически обновляет пакеты, установленные в вашей системе. Чтобы облегчить это, snapd по умолчанию настроен на проверку обновлений четыре раза в день. Однако при желании вы можете изменить эту частоту обновления по своему усмотрению.

Кроме того, при необходимости вы можете выполнить мгновенное обновление, запустив:

Аналогичным образом вы также можете проверить наличие обновлений для оснастки с помощью:

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

Вернуться к ранее использовавшейся версии Snap

Если у вас возникли проблемы после обновления снимка, вы можете вернуться к его предыдущей версии, выполнив:

Отключение и включение привязки

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

Чтобы отключить привязку, введите:

Если вы хотите включить его, просто запустите:

Удаление привязки

Успешная настройка Snap в Linux

Если вы до сих пор следовали руководству, Snap будет установлен и запущен в вашей системе Linux. И впоследствии вы сможете найти и загрузить большинство необходимых вам пакетов. Конечно, как и в случае с любым другим менеджером пакетов, вам может потребоваться некоторое время, чтобы привыкнуть к Snap. Но как только вы освоите его, вы сможете эффективно его использовать.

Тем не менее, у использования Snap есть как преимущества, так и недостатки, которые вы должны принять во внимание, прежде чем начать. Если вам нужна альтернатива Snap — такая, которая хорошо согласуется с бесплатной методологией с открытым исходным кодом, — проверьте Flatpaks, чтобы получить лучшее представление о том, какой менеджер пакетов имеет лучший магазин для загрузки приложений Linux.

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

Хотя использование репозиториев удобно по многим причинам, оно часто представляет собой препятствие для пользователей, не разбирающихся в технологиях. За последние пару лет было создано несколько альтернативных систем упаковки, чтобы сделать работу с Linux более удобной для пользователя.

В этой сравнительной статье вы узнаете о различиях между системой упаковки Snap и диспетчером пакетов APT.

Что такое Snap?

Snap — это программный пакет и система развертывания, в которой для доставки программного обеспечения пользователям используются автономные пакеты, называемые Snap. Snaps упаковывают все зависимости, необходимые программе, в один пакет. Таким образом, приложение не зависит от системы, а это означает, что оно может работать в любом дистрибутиве Linux, поддерживающем Snap.

В то время как APT в основном получает пакеты из официальных репозиториев дистрибутива, Snap позволяет разработчикам доставлять свои приложения непосредственно пользователям через Snap Store. Разработчики также могут публиковать снимки непосредственно на своих веб-сайтах.

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

Ниже приведен пример установки Thunderbird с помощью команды snap:

Что такое АПТ?

APT (Advanced Package Tool) — это программный менеджер пакетов для установки и удаления пакетов в системах на основе Debian. APT автоматизирует процесс получения, настройки, обновления, установки и удаления пакетов. APT — это внешний интерфейс базовой системы управления пакетами Debian dpkg.

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

Инструмент, который APT в основном использует для взаимодействия с пользователями, называется apt . Утилита предлагает самые популярные команды apt-get и apt-cache, которые считаются менее удобными для пользователя.

Снимок экрана демонстрирует установку Thunderbird с помощью apt :

Примечание. Дополнительные сведения о APT см. в разделе Как использовать диспетчер пакетов APT в Ubuntu Linux и APT в сравнении с APT-GET.

Привязка против. АПТ: отличия

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

В таблице ниже поясняется терминология и приводятся основные точки сравнения:

Формат пакета

Snap использует файлы .snap, доступные для загрузки в магазине Snap Store или на веб-сайте разработчика. Файл .snap содержит приложение, его зависимости и метаданные в сжатой файловой системе SquashFS.

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

APT использует файлы .deb из сетевых репозиториев программного обеспечения для каждого дистрибутива Linux, который их поддерживает. Файл .deb представляет собой архив Unix, который включает в себя два архива tar. Один архив содержит управляющую информацию, а другой содержит файлы, используемые для установки пакета.

Размер пакета

Снэпы являются автономными, что приводит к относительно большому размеру файла .snap. Когда пользователь устанавливает оснастку, файл распаковывается и монтируется как петлевое устройство только для чтения в домашнем каталоге.

Приложение, установленное через APT, меньше по размеру, чем его аналог из оснастки, потому что ему не нужно связывать зависимости пакетов.

Зависимости

Snap связывает зависимости пакета внутри пакета. Хотя такой подход негативно влияет на размер пакета, основное преимущество заключается в том, что у пользователей всегда есть поддерживаемая и протестированная версия пакета.

APT использует подход с общими зависимостями. Когда пользователь выдает команду apt install, APT считывает список зависимостей, проверяет, установлены ли уже в системе какие-либо пакеты, и устанавливает недостающие. Этот метод поддерживает небольшой объем памяти.

Простота использования

Разница в простоте использования для конечных пользователей несущественна. Приложения Snap универсальны и более практичны для разработчиков, а выпуск обновления — это простой процесс изменения одного пакета.

С другой стороны, APT проверяет репозитории на наличие обновлений. Когда обновление готово, системе репозитория требуется отдельная версия для каждого дистрибутива (Ubuntu, Linux Mint, Pop! OS и т. д.) и версии каждого дистрибутива (Ubuntu 18.04, Ubuntu 20.04 и т. д.). Этот метод требует много времени и иногда приводит к задержкам для некоторых раздач.

Скорость

Snap запускается дольше, чем APT, поскольку ОС распаковывает снимки при первом использовании для экономии места на диске. Однако снапы медленнее только при первом запуске — разница уменьшается или полностью исчезает при втором запуске.

Обновления

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

APT предоставляет пользователю полный контроль над процессом обновления. Однако, когда дистрибутив сокращает выпуск, он обычно замораживает deb и не обновляет их на время выпуска. Поэтому Snap — лучшее решение для пользователей, предпочитающих новейшие версии приложений.

Интеграция с графическим интерфейсом

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

Недавно в сообществе Snap произошли некоторые изменения в отношении интеграции тем. Он включает в себя введение фоновой службы, которая следит за изменениями темы и предлагает пользователям настроить свое приложение в соответствии с темой ОС.Тем не менее, эта работа еще не завершена, и моментальные снимки все еще не полностью интегрированы в основную ОС.

С другой стороны, файлы .deb, используемые APT, зависят от дистрибутива и версии, что приводит к предоставлению возможностей Linux по умолчанию с точки зрения интеграции тем.

Безопасность

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

С другой стороны, каждый дистрибутив Linux проверяет deb-файлы, включенные в его репозиторий. Таким образом, пользователи APT могут быть уверены, что приложение получено из надежного источника. Это не относится к сторонним репозиториям или deb-файлам, доступным на веб-сайтах издателей.

Привязка против. АПТ: какой выбрать?

Выберите Привязать, если:

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

Выберите APT, если:

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

Примечание. Если вы заинтересованы в работе с Snap, ознакомьтесь с нашим руководством по установке Snap в Ubuntu.

В этой сравнительной статье кратко описаны различия между использованием системы упаковки Snap и диспетчера пакетов APT. Изучение сравнения Snap и APT должно помочь вам решить, какой метод установки вы предпочитаете.

Читайте также:

SnapAPT
Тип пакета .snap .deb
Имя инструментаsnapdAPT
Инструмент CLI snap apt
ФорматАрхив SquashFS архив ar
Доступно вSnap Storeрепозитории Debian
Размер установкиБольшеМеньше
ЗависимостиСодержится в пакетОбщие
ОбновленияАвтоматическиВручную
Защитное заключениеЗакрытоеОграниченное заключение
Несколько установокВозможноНевозможно
Установка нескольких версийВозможноНевозможно