Snappy (система управления пакетами)
Snappy — система развёртки и управления пакетами, разработанная Canonical для мобильной Ubuntu. Пакет называется snap, утилита для управления — snapd, всё это работает на широком спектре дистрибутивов Linux и позволяет создавать дистрибутивно-независимые программные продукты. Система разработана для работы как для интернета вещей, так и для облачных решений, так и для пользовательских задач.
Snappy | |
---|---|
Тип | система управления пакетами |
Разработчик | Canonical Ltd. |
Операционная система | GNU/Linux |
Лицензия | 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
Snapcraft — это утилита для разработчиков, позволяющая паковать свои программы в пакеты snap.[9]
.snap
Файл .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]
Примечания
- Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS (англ.). Launchpad (10 мая 2010). Дата обращения: 14 октября 2018. Архивировано 27 июля 2018 года.
- DebConf 14: QA with Linus Torvalds на YouTube, начиная с 9:41
- Canonical unveils 6th LTS release of Ubuntu with 16.04 (англ.), ubuntu blog (20 April 2016). Архивировано 22 августа 2018 года. Дата обращения 14 октября 2018.
- В Ubuntu 16.04 обеспечена поддержка установки самодостаточных snap-пакетов, OpenNET (13 апреля 2016). Архивировано 16 января 2018 года. Дата обращения 14 октября 2018.
- Shuttleworth, Mark. Announcing Ubuntu Core, with snappy transactional updates! (англ.), Mark Shuttleworth blog (9 December 2014). Архивировано 13 октября 2018 года. Дата обращения 14 октября 2018.
- Willis, Nathan. Ubuntu Core and Snappy (англ.), LWN.net (28 January 2015). Архивировано 13 октября 2018 года. Дата обращения 14 октября 2018.
- Vaughan-Nichols, Steven J.. Ubuntu Snap takes charge of Linux desktop and IoT software distribution (англ.), ZDnet (14 June 2016). Архивировано 26 февраля 2018 года. Дата обращения 14 октября 2018.
- Universal “snap” packages launch on multiple Linux distros (англ.), Ubuntu blog (14 June 2016). Архивировано 21 августа 2018 года. Дата обращения 14 октября 2018.
- Snapcraft Developer (англ.).
- Vaughan-Nichols, Steven J.. Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft (англ.), ZDnet (11 May 2015). Архивировано 9 января 2017 года. Дата обращения 14 октября 2018.
- Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series (англ.), Ubuntu blog (21 October 2015). Архивировано 14 октября 2018 года. Дата обращения 14 октября 2018.
- Snap support for Peek screen recorder discontinued (англ.). Reddit (25 марта 2018). Дата обращения: 14 октября 2018. Архивировано 28 марта 2018 года.