Авторские статьи

Snap в 300 Кб.


Snap пакет самодостаточен и не имеет зависимостей как deb, что до сих пор вызывает споры - является ли это достоинством или недостатком. Приходилось упаковывать всё нужное программе вместе с ней, но чем "тяжелее" зависимость тем больше итоговый размер, несмотря на отличное сжатие squashfs. Все ждали от разработчиков возможность "тяжёлые" runtime представить в системе в виде отдельных snap и из вашего snap попросить соединить с ним. И вот первая ласточка! Snap пакет kcalc занимает 300 кб, так как остальное ему даёт snap KDE Frameworks.

Кто-то скажет, что ушли от зависимостей deb, но connect между snap пакетами чем не связь-зависимость? Частично вы правы, но дьявол прячется в мелочах. Сейчас в большинстве дистрибутивов linux вы не можете иметь несколько одновременно установленных в системе библиотек типа gtk/qt или различных версий runtime типа KDE Frameworks. Новые версии библиотек и runtime вынуждают сторонних авторов ПО отслеживать их API/ABI и частенько переписывать свои детища, если они хотят и впредь видеть свою программу в официальных репозиториях. Более подробно лучше прочесть в статье Разработчики GTK хотят разрушить Linux desktop. В мире snap можно в операционной системе обладать несколькими версиями библиотек/runtime и просить коннект к нужной. Это тонкая грань между зависимостями (dependancy) в мире deb и соединениями (connect) в мире snap.

Разработчик Canonical Майкл Холл (Michael Hall) представил в новых версиях демона snapd интерфейс content и на примере текстового редактора Geany показал как программа в одном snap пакете получает возможность использовать свои плагины из другого snap пакета.

Другой разработчик из проекта KDE Neon Гарольд Ситтер (Harold Sitter) пошёл дальше и упаковал kcalc в 300 кб. Все программы из мира KDE зависят от её библиотек и базового набора сервисов для обеспечения единого UI и UX.

Kcalc - само по себе небольшое приложение, но зависит от KDE Frameworks, что делало итоговый размер впечатляющим.

Сейчас оба разработчика показали очень раннюю технологию соединения между snap ради общего "контента", которая позже расцветёт и покажет себя с прекрасной стороны. Сами разработчики KDE смогут представить свои программы из проекта в независимых snap, а общий для них KDE Frameworks вынести в отдельный. Для нас, пользователей, в итоге окажется возможность получать последний стабильный (или если захотите разрабатываемый) релиз платформы KDE напрямую из апстрим проекта, даже если вы используете стабильный Ubuntu LTS.

Если хотите попробовать прямо сейчас, то вам нужно скачать вручную файлы с серверов Neon:
kde-frameworks-5_5.26_amd64.snap
kcalc_0_amd64.snap
и установить их snap install --devmode --force-dangerous имя-снап-пакета

Первый вопрос Майклу Холлу был, а будет ли в будущем реализовано, что пользователь ставит, к примеру, kcalc и установщик доставит сам kde-frameworks, который ранее отсутствовал в системе. Майкл ответил, что так и будет, но пока рано говорить даже о начале реализации. Слишком ранняя технология.

До сего момента абсолютно все snap пакеты просили соединений к материнскому пакету ubuntu-core для доступа к таким вещам как X11, звук pulseaudio, сеть и так далее. Сейчас новый виток развития технологии snap, когда пакеты snap будут запрашивать соединения между собой, если им это нужно.

Дата последней правки: 2023-12-27 14:19:37

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта