Canonical развивает универсальные пакеты snap, работающие в различных дистрибутивах Linux

2016-06-14

Компания Canonical объявила о реализации поддержки технологии самодостаточных пакетов snap для дистрибутивов, отличных от Ubuntu. Кроме Ubuntu, возможность использования пакетов snap теперь предоставлена для Fedora, Arch Linux и Debian, а сам snap позиционируется в качестве универсального формата пакетов для поставки приложений, не связанных зависимостями с остальными компонентами дистрибутива. В стадии проверки находится реализация snap для CentOS, Elementary, Gentoo, Linux Mint, openSUSE, OpenWrt и RHEL.

При помощи snap-пакетов предлагается поставлять единые сборки программ, не заботясь об обеспечении привязки к особенностям дистрибутивов и поставляемым в каждом дистрибутиве библиотекам и пакетным менеджерам. Snap-пакеты включают все необходимые для работы компоненты и выполняются в изолированном окружении, отделённом от остальной системы, что защищает от возможного негативного влияния на систему установки сторонних программ и даёт возможность ознакомительного запуска приложения без изменения состава системы и применения систем виртуализации. Графические приложения получают полный доступ к OpenGL и графической подсистеме. В том числе предоставляется прямой доступ к X Server, без дополнительных прослоек, что не исключает возможность совершения атак через манипуляцию с событиями ввода.

Установка пакетов осуществляется из каталога Snap store, доступного через web-интерфейс или инструментарий командной строки. Работа со Snap store напоминает применение традиционных пакетных менеджеров. Основное отличие в том, что в системе можно одновременно использовать разные версии одной программы. Для распространения приложений предлагается несколько каналов - стабильные выпуски, кандидаты в релизы, бета-версии и экспериментальные сборки. Возможна поставка различных видов графических и консольных приложений для серверных, настольных, облачных и встраиваемых систем.

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

Процесс подготовки и сопровождения snap-пакетов значительно проще поддержки традиционных репозиториев пакетов deb и rpm. Для упаковки приложения в форму snap-пакета предлагается инструментарий Snapcraft. Для портирования уже собранных для Ubuntu snap-пакетов для других дистрибутивов предлагается инструментарий snapd. Из уже поставляемых в форме snap-пакетов программ отмечается графический редактор Krita, САПР FreeCAD, СУБД Cassandra, система непрерывной интеграции Jenkins. Готовятся к выпуску snap-сборки LibreOffice и Firefox. Ведётся работа по адаптации приложений KDE для работы со snap и flatpak (бывший xdg-app).