Snappy (система управления пакетами)

Snappy — система развёртывания и управления пакетами, разработанная Canonical для Ubuntu. Пакет называется snap, утилита для управления — snapd, всё это работает на широком спектре дистрибутивов Linux и позволяет создавать дистрибутивно-независимые программы.

Snappy
Скриншот программы Snappy
Тип система управления пакетами
Разработчик Canonical Ltd.
Операционная система GNU/Linux
Репозиторий github.com/snapcore/
Лицензия GNU GPL 3
Сайт snapcraft.io (англ.)

Функциональность

править

Пакеты snap — это переносимые приложения, работающие на большинстве дистрибутивов Linux. Это отличается от традиционных пакетных менеджеров типа apt или Yum, требующих адаптации приложения под каждый дистрибутив, вследствие чего обновление пакетов замедляется, например, LibreOffice в системе apt обновляется реже, чем на официальном сайте.[1][2]

Пакеты не зависят от какого-либо дистрибьютора приложений и могут быть установлены из любого источника и использованы в разработке upstream[англ.]. Во время развёртывания пакета snap установленный магазин приложений может служить источником обновлений, но не обязательно только он.

Разработчики могут использовать систему, чтобы создавать приложения для командной строки или демонов также как и обычные пользовательские приложения.[3][4] Приложения могут быть обновлены при помощи атомарных или дельта обновлений.[5][6][7]

В июне 2016 snapd был портирован на большинство дистрибутивов, тем самым открывая возможности использования пакетов snap на почти всех дистрибутивах.[8]

Snapcraft — это утилита для разработчиков, позволяющая паковать свои программы в пакеты snap.[9]

Файл .snap представляет собой динамично подключаемый сжатый файл с файловой системой внутри (основана на squashfs) и метаданными в декларативном виде, которые интерпретируются системой при создании защищённой песочницы или контейнера.

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

править

Пакеты snap могут быть использованы в интернете вещей от пользовательских продуктов[10] до решений уровня предприятия.[11] Snappy включён в Ubuntu начиная с версии 16.04.

Примеры использования

править

На сайте Snapcraft указано, что пакеты предоставляют им большие дистрибьюторы, типа Mozilla, Microsoft, Google. В репозитории есть такие продукты, как браузер Mozilla Firefox(firefox), Microsoft Azure (Azure CLI) и многие другие. В репозитории могут быть выложены разные версии, используемые в программе тестирования, например, для Firefox выложены версии ESR, стабильная, RC, бета, edge.

Доступ к файлам ограничен, например, для Firefox создаётся папка ~/snap/firefox/common/ для эмуляции домашней папки пользователя.

Критика

править
  • Разработчики Peek — утилиты для захвата экрана перестали поддерживать выпуск версий snap, отчасти из-за того, что текущая реализация песочницы не даёт возможностей записи экрана с Wayland;
  • Snappy до сих пор остаётся пакетным менеджером преимущественно для Ubuntu, например, в Arch Linux snapd давно не обновляется и даже удалён из стандартного репозитория;
  • Сборка пакета snap занимает больше времени, чем сборка в другое портативное приложение;
  • Использование платформы отличается от типовых инструментов системы, пользователю для начала требуется узнать про Snappy — многие пользуются стандартными средствами загрузки пакетов;
  • Центр приложений Ubuntu не даёт возможности использовать данные AppStream[англ.], заставляя добавлять метаданные отдельно;
  • Также общей проблемой всех переносимых пакетов является не только дополнительная компиляция, сборка и отдельный релиз, но и сборка зависимостей в пакет, если их много, следить за каждым сложно.[12]

См. также

править

Примечания

править
  1. Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS (англ.). Launchpad (10 мая 2010). Дата обращения: 14 октября 2018. Архивировано 27 июля 2018 года.
  2. DebConf 14: QA with Linus Torvalds на YouTube, начиная с 9:41
  3. "Canonical unveils 6th LTS release of Ubuntu with 16.04". ubuntu blog (англ.). 2016-04-20. Архивировано 22 августа 2018. Дата обращения: 14 октября 2018.
  4. "В Ubuntu 16.04 обеспечена поддержка установки самодостаточных snap-пакетов". OpenNET. 2016-04-13. Архивировано 16 января 2018. Дата обращения: 14 октября 2018.
  5. Shuttleworth, Mark (2014-12-09). "Announcing Ubuntu Core, with snappy transactional updates!". Mark Shuttleworth blog (англ.). Архивировано 1 сентября 2018. Дата обращения: 14 октября 2018.
  6. Willis, Nathan (2015-01-28). "Ubuntu Core and Snappy". LWN.net (англ.). Архивировано 13 октября 2018. Дата обращения: 14 октября 2018.
  7. Vaughan-Nichols, Steven J. (2016-06-14). "Ubuntu Snap takes charge of Linux desktop and IoT software distribution". ZDnet (англ.). Архивировано 26 февраля 2018. Дата обращения: 14 октября 2018.
  8. "Universal "snap" packages launch on multiple Linux distros". Ubuntu blog (англ.). 2016-06-14. Архивировано 21 августа 2018. Дата обращения: 14 октября 2018.
  9. Snapcraft Developer (англ.). Дата обращения: 14 октября 2018. Архивировано 16 мая 2018 года.
  10. Vaughan-Nichols, Steven J. (2015-05-11). "Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft". ZDnet (англ.). Архивировано 9 января 2017. Дата обращения: 14 октября 2018.
  11. "Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series". Ubuntu blog (англ.). 2015-10-21. Архивировано 14 октября 2018. Дата обращения: 14 октября 2018.
  12. Snap support for Peek screen recorder discontinued (англ.). Reddit (25 марта 2018). Дата обращения: 14 октября 2018. Архивировано 28 марта 2018 года.