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

KDE приложения в snap пакетах.


Меня очень радует, что такой проект как KDE, один из первых решил задействовать мощь snap пакетов для себя и выступить в роли ледокола, который покажет и расчистит путь другим.

20 лет уже как проект KDE создаёт программное обеспечение, известное во всём мире. В рамках этой гигантской работы создана коллекция бибилиотек, которая позволяет на базе них построить графические приложения с отличной интеграцией в любой операционной системе. Разработчики называют их KDE Frameworks.

На примере KCalc были сделаны первые попытки упаковать софт в snap пакет и самодостаточная сущность этих пакетов выдала ~70 мб итогового размера. Это было ожидаемо, так как любая программа из мира KDE использует нижележащий фреймворк C++ и Qt. С тех пор разработчики сфокусировались на поиске эффективного решения.

Элегантный выход только один. Snap пакеты получают нужное, запрашивая коннекты к нужным для них интерфейсам. До сего момента коннекты делались в основном к операционной системе, которая была представлена снап пакетом ubuntu-core. Но можно сделать snap пакет, который будет предоставлять общий ресурс (share content), а остальные могут попросить коннект к нему. KCalc в такой схеме "похудел" до 312 Кб.

На примере Kalgebra разработчики показали кусок текста из snapcraft.yaml для данного приложения:

apps:
  kalgebra:
    command: kf5-launch kalgebra
    plugs:
      - kde-frameworks-5-plug # content share itself
      - home # give us a dir in the user home
      - x11 # we run with xcb Qt platform for now
      - opengl # Qt/QML uses opengl
      - network # gethotnewstuff needs network IO
      - network-bind # gethotnewstuff needs network IO
      - unity7 # notifications
      - pulseaudio # sound notifications

Обратите внимание что для запуска программы используется специальный стартовый скрипт kf5-launch и в разделе plugs наблюдается присутствие kde-frameworks-5-plug, запрашивающее коннект к другому snap.

Разработчики сделали следующий шаг. Не нужно ничего скачивать стороннего, даже с серверов Neon, как рекомендовалось ранее. Теперь наработки лежат в Ubuntu Store, правда из-за раннего этапа они не на канале stable, а на канале edge и поставить-попробовать можно, командуя только в Терминале.

sudo snap install --edge kde-frameworks-5
sudo snap install --edge --devmode kblocks
sudo snap install --edge --devmode ktuberling

От себя в очередной раз хочется добавить, что такие наработки разработчиков вскоре изменят наш мир в хорошую сторону. Происходит, в хорошем смысле, разделение сфер (зон) влияния. Разрабы Canonical занимаются и отвечают головой за систему, а поверх системы, независимо от библиотек в ней, работает софт KDE, получая нужное от KDE Frameworks. Никто не обязан ни с кем синхронизироваться, не должен отслеживать изменения друг друга.

Дата последней правки: 2016-12-06 09:06:05

RSS vasilisc.com   


Разделы

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