Меня очень радует, что такой проект как 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