Snap (менеджер пакетов)

редактировать
Система развертывания программного обеспечения для Linux от Canonical
snapd
Логотип Snapcraft
Разработчик (и) Canonical Ltd.
Первый выпуск9 декабря 2014 г.; 5 лет назад (09.12.2014)
Стабильный выпуск 2.47.1 / 8 октября 2020 г.; 22 дня назад (2020-10-08)
Репозиторий https://github.com/snapcore/snapd
Написано наGo, C
Операционной системе Linux
Лицензия GPLv3 (клиент), проприетарный (сервер)
Веб-сайтsnapcraft.io

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

Содержание
  • 1 Функциональность
    • 1.1 Snap Store
    • 1.2 Универсальные пакеты Linux
    • 1.3 Настраиваемая песочница
    • 1.4 Автоматические и атомарные обновления
    • 1.5 Snapcraft
  • 2 Принятие
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Функциональность

Snap Store

Snap Store позволяет разработчикам публиковать свои приложения непосредственно для пользователей. При использовании традиционных подходов к управлению пакетами Linux, таких как APT или YUM, приложения упаковываются и распространяются как часть операционной системы. Это создает задержку между разработкой приложения и его развертыванием для конечных пользователей. Напротив, разработчики приложений могут публиковать свои приложения в Snap Store и доставлять их напрямую пользователям без какого-либо вмешательства со стороны специалистов по сопровождению распространения.

Все приложения, загруженные в Snap Store, проходят автоматическое тестирование, включая сканирование вредоносных программ. Однако приложения Snap не проходят такой же уровень проверки, как программное обеспечение в обычных архивах Ubuntu. В одном случае в мае 2018 года было обнаружено, что два приложения одного и того же разработчика содержат майнер криптовалюты, который работал в фоновом режиме во время выполнения приложения. Когда эта проблема была обнаружена, Canonical удалила приложения из Snap Store и передала право собственности на Snap доверенной третьей стороне, которая повторно опубликовала Snap без присутствия майнера. Хотя песочница Snap снижает влияние вредоносного приложения, Canonical рекомендует пользователям устанавливать Snap только от издателей, которым доверяет пользователь.

Поскольку пакеты в Snap Store поддерживаются самими разработчиками, специалисты по сопровождению распространения не могут гарантировать соответствие пакетов качеству стандарты и своевременно обновляются. В одном случае Microsoft оставила устаревшую версию Skype в магазине Snapcraft более года.

Хотя Snap Store от Canonical в настоящее время является единственным существующим магазином снимков, сам Snap может использоваться без магазина. Пакеты Snap можно получить из любого источника, включая веб-сайт разработчика. Сотрудник Red Hat Адам Уильямсон и руководитель проекта Linux Mint Клемент Лефебр раскритиковали Canonical за то, что некоторые серверные части Snap Store остаются закрытыми. Клемент заявляет, что это создает конфликт интересов, который наносит ущерб нейтральности Snap, учитывая, что Canonical разрабатывает Ubuntu.

Универсальные пакеты Linux

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

Формат файла snap представляет собой единую сжатую файловую систему с использованием Формат SquashFS с расширением .snap. Эта файловая система содержит приложение, библиотеки, от которых оно зависит, и декларативные метаданные. Эти метаданные интерпретируются snapd для создания безопасной песочницы соответствующей формы для этого приложения. После установки оснастка монтируется операционной системой хоста и распаковывается на лету, когда файлы используются. Хотя это имеет то преимущество, что снимки занимают меньше места на диске, это также означает, что некоторые большие приложения запускаются медленнее.

Существенная разница между Snap и другими универсальными форматами упаковки Linux, такими как Flatpak, заключается в том, что Snap поддерживает любой класс приложений Linux, таких как настольные приложения, серверные инструменты, приложения IoT и даже системные службы, такие как стек драйверов принтера. В результате Snap полагается на systemd для таких функций, как запуск системных служб, активируемых сокетами, в Snap. Это заставляет Snap работать только в дистрибутивах, которые используют эту систему инициализации.

Настраиваемая песочница

Приложения в Snap запускаются в контейнере с ограниченным доступом к хост-системе. Используя интерфейсы, пользователи могут предоставить приложению опосредованный доступ к дополнительным функциям хоста, таким как запись звука, доступ к USB-устройствам и запись видео. Эти интерфейсы являются посредниками в обычных API Linux, поэтому приложения могут работать в песочнице без необходимости переписывания. Настольные приложения также могут использовать XDG Desktop Portals, стандартизованный API, изначально созданный проектом Flatpak, чтобы предоставить изолированным настольным приложениям доступ к ресурсам хоста. Эти порталы часто обеспечивают лучший пользовательский опыт по сравнению с собственными API Linux, поскольку они запрашивают у пользователя разрешение на доступ к таким ресурсам, как веб-камера, в то время, когда приложение их использует. Обратной стороной является то, что приложения и наборы инструментов необходимо переписать, чтобы использовать эти новые API.

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

Песочница Snap в значительной степени зависит от модуля безопасности Linux AppArmor от вышестоящего Ядро Linux. Поскольку одновременно может быть активен только один Linux Security Module (LSM), песочница Snap гораздо менее безопасна, когда включен другой LSM. В результате в таких дистрибутивах, как Fedora, в которых по умолчанию включен SELinux, песочница Snap сильно ухудшена. Хотя Canonical работает со многими другими разработчиками и компаниями, чтобы сделать возможным одновременную работу нескольких LSM, до этого решения еще далеко.

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

Автоматические и атомарные обновления

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

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

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

Snapcraft

snapcraft
Логотип Snapcraft
Разработчик (и) Canonical Ltd.
Первый выпуск29 октября 2015 г.; 5 лет назад (2015-10-29)
Стабильный выпуск 4.3 / 11 сентября 2020 г.; 49 дней назад (2020-09-11)
Репозиторий https://github.com/snapcore/snapcraft
Написано наPython
Операционная система Linux, macOS, Microsoft Windows
Лицензия GPLv3
Веб-сайтsnapcraft.io

Snapcraft - это инструмент, позволяющий разработчикам упаковывать свои программы в Snap формат. Он работает в любом дистрибутиве Linux, поддерживаемом Snap, macOS и Microsoft Windows. Snapcraft собирает пакеты на виртуальной машине, используя Multipass, чтобы гарантировать одинаковый результат сборки, независимо от того, на каком дистрибутиве или операционной системе она построена. Snapcraft поддерживает большое количество инструментов сборки и языков программирования, таких как Go, Java, JavaScript, Python, C /C ++ и Rust. Он также позволяет импортировать метаданные приложения из нескольких источников, таких как AppStream, git, сценарии оболочки и файлы setup.py.

Adoption

Первоначально Snap поддерживал только дистрибутив Ubuntu Core, полностью состоящий из Snap, но в июне 2016 года он был перенесен на широкий спектр дистрибутивов Linux, чтобы стать форматом для универсальных пакетов Linux. Snap требует функциональности (systemd), доступной в Linux, в некоторых других Unix-подобных системах нет, например, FreeBSD не имеет Snap. Chrome OS не поддерживает Snap напрямую, только через установленные в нем дистрибутивы Linux, которые поддерживают Snap, такие как Gallium OS.

Ряд дистрибутивов Linux поддерживают Snap из коробки, например Ubuntu (и, например, Kubuntu), Manjaro, Zorin OS, KDE Neon, Solus и Li-fe. Snap также доступен для многих других дистрибутивов, таких как Arch Linux, CentOS, Debian, Elementary OS, Fedora <11.>, GalliumOS, Kali Linux, Linux Mint, OpenEmbedded, Parrot Security OS, Pop ! _OS, Raspbian, Red Hat Enterprise Linux и openSUSE.

Ряд известных компаний-разработчиков ПО для настольных ПК публикуют свое программное обеспечение в Snap Store, в том числе Google, JetBrains, KDE, Microsoft (для Linux-версий, например,.NET Core 3.1, Visual Studio Code, Skype и PowerShell), Mozilla и Spotify. Snap также используются в средах Интернета вещей, начиная от продуктов, ориентированных на потребителя, и заканчивая шлюзами управления корпоративными устройствами и сетями спутниковой связи. Наконец, Snap также используется разработчиками серверных приложений, таких как InfluxDB, Kata Containers, Nextcloud и Travis CI.

. В 2019 году Canonical решила переключить Интернет на Chromium. Браузер в будущих выпусках Ubuntu из пакета APT в Snap. Они объяснили, что Snap значительно упростил поддержку Chromium во всех поддерживаемых выпусках Ubuntu. Это позволило им сосредоточить инженерные ресурсы на других частях рабочего стола Ubuntu. В результате этого решения производным Ubuntu, таким как Linux Mint, пришлось выбирать между сохранением собственной версии пакета Chromium или переходом на привязанную версию Chromium, поддерживаемую Canonical. Клемент Лефебр, основатель Linux Mint и руководитель проекта, назвал это причиной, по которой Linux Mint 20 блокирует установку Snap. Поскольку Snap по-прежнему доступен в репозиториях Linux Mint, пользователи могут установить его после снятия ограничений вручную.

Программное обеспечение GNOME удалило поддержку Snap в июле 2019 года из-за проблем с качеством кода и отсутствия интеграции (в частности, что пользователь не может сказать, что делает Snap после нажатия кнопки «установить», и что он обычно игнорирует настройки GNOME). Это не означает, что Snaps нельзя установить в Fedora или другом программном обеспечении GNOME с использованием дистрибутивов, только Snap необходимо установить сначала. Ubuntu также использовала программное обеспечение GNOME до Ubuntu 20.04, и наоборот, можно добавить поддержку Flatpak.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-08 07:08:00
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте