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

Пакеты Click идут на десктоп.


Легковесные пакеты в формате Click готовятся покорить не только Ubuntu Phone (Touch), но и десктопы пользователей.

Кратко напомню, что за фрукт этот Click и с чем его едят. Ubuntu основана на кодовой базе Debian и каждый релиз Убунту начинается с синхронизации с этой самой обновлённой кодовой базой Дебиан. Хорош ли формат пакетов deb? Хорош! Только он придуман людьми-системщиками, которые Создают Операционную Систему. Ваша простенькая программка попадает в официальные репозитории на тех же условиях, что и программные части самой операционной системы. Для вас никто не будет делать ни исключений, ни поблажек.

Формат deb пакета подразумевает такое понятие как полное разрешение зависимостей (full dependency resolution). Утрируя, ваше даже простое HelloWorld может быть написано так, что используются сторонние подпроекты, а они так же зависят от других подпроектов или библиотек. И не забудьте, что версии нужно соотнести с версиями библиотек в текущем релизе и в релизах до этого. Всё? Нет! В deb есть скрипты в пакете (maintainer scripts), которые выполняют определённые действия под root'ом при операциях над пакетом.

И теперь представьте, что нужно сделать и делать постоянно при запросе на добавление новой программы в репозиторий или при изменении версии прикладной программы! Сначала ситуацию пытались решить с помощью создания Application Review Board (ARB). ARB - это группа людей из сообщества, которая рассматривала пакеты с упрощёнными критериями. К сожалению, несмотря на все усилия ARB, технические ограничения взяли вверх.

Canonical решила создать click пакеты не как замена deb пакетам, а как способ быстро и легко, минуя людей, проверять прикладные программы и быстрее их одобрять в основной репозиторий. В click пакетах нет maintainer scripts и зависимость только от Ubuntu SDK вместо full dependency resolution. Софт из click пакетов легко проверяется автоматическими тестами и работает в системах пользователя под присмотром AppArmor.

Вот такое отделение системного софта (в deb) от прикладного софта (в click) упрощает и ускоряет появление прикладного софта в основных репозиториях и необходимость программисту создавать свой репозиторий или PPA уменьшается.

Запомните эту цель click пакетов - быстро проверять прикладной софт на безопасность и быстро одобрять для появления в основных репозиториях.

Николас Скаггс (Nicholas Skaggs), разработчик Canonical, хочет заострить наше внимание на таком важном аспекте, как поддержка MultiArch в Click пакетах. В click пакете есть понятие манифест (manifest) файла, в котором есть ключи для указания целевой архитектуры. Так как программы в Ubuntu могут быть написаны с помощью HTML5 и не обладать бинарником, то таким программам можно просто указать all в ключе architecture. По словам Николаса довольно таки много приложений в Ubuntu Phone Store указали all в architecture. Но для классических программ с компилированным кодом есть возможность запихать в один click пакет бинарники под разные архитектуры.

Временно требуется небольшое ручное вмешательство, так как Ubuntu SDK пока такого не позволяет. Пользуясь материалом для разработчиков на портале developer.ubuntu.com, вы должны создать различные click пакеты своей программы для различных архитектур. Николас в качестве примера приводит свою программку Часы и на ней показывает работу MultiArch. Его пример показывает на выходе:
com.ubuntu.clock_3.2.176_amd64.click
com.ubuntu.clock_3.2.176_i386.click
com.ubuntu.clock_3.2.176_armhf.click

С помощью утилиты dpkg нужно распаковать каждый click пакет по примеру: dpkg -x com.ubuntu.clock_3.2.176_amd64.click amd64

Теперь одну из архитектур нужно взять за основу будущего пакета click с multi-arch и нужно удалить скомпилированный код в lib. Командуем

cp amd64 multi
rm -rf multi/lib/*

Внутри lib/ нужно создать каталоги arm-linux-gnueabihf/, i386-linux-gnu/ и x86_64-linux-gnu/ и внутри уже них будет лежать соотстветствующий бинарный код. Для примера, код из lib/ com.ubuntu.clock_3.2.176_i386.click будет находиться в lib/i386-linux-gnu/.

Остаётся лишь подправить manifest.json вашего приложения и добавить в architecture список архитектур

"architecture": ["armhf", "i386", "amd64"],

Можно строить свой multi-arch click пакет - click build multi
Создастся файл с окончанием _multi.click и он готов к заливанию в Ubuntu Store и будет работать на трёх (в нашем примере) архитектурах.

Маленькая ложка дёгтя в бочке мёда.

Click пакеты новая технология, а его мультиархитектурность - молодая фича. Временно, такой пакет multi-arch click вызовёт остановку автоматической проверки и одобрения в Ubuntu Store и произойдёт переход на ручной просмотр сотрудниками Canonical, что займёт чуточку дольше времени. Над этим работают.

Я вижу будущее.

Canonical на всех парах летит к своей мечте - единая кодовая база Ubuntu. Всё подчинено этой цели, всё является кирпичиками этого будущего здания. Пакеты click, связанные с AppArmor и Ubuntu SDK, занимаются облегчением для программистов, чьи программы должны быстро, легко, безопасно появляться и обновляться в основном репозитории, а не на PPA или сторонних репо. Пакеты Click играют сильную роль в новой Unity 8, а мы, сидя ещё в старой Unity 7, этого не ощущаем. Canonical! Заклинаю! Быстрее! Быстрее! Николас хвастает, что в его Unity 8 на десктопе софт ставится и обновляется через click пакеты ещё легче и проще. Я тоже так хочу

Связанные темы:
Процесс загрузки приложения в репозиторий Ubuntu.
Первый пакет в формате Click появился в Центре Приложений Ubuntu.
Click Package 0.1.2 появился Ubuntu 13.10 в секции universe.
Click package file format, version 0.4
Creating multi-arch click packages. Nicholas Skaggs.

    Twitter   


Разделы

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

Лучшее на сайте:

1С под Linux.   Ускорение Ubuntu.   21 пример iptables.   Цикл статей о Ceph.   Убунту в дикой среде.   Ubuntu Linux на SSD.   Ubuntu для блондинок.   Поддержка железа в Linux.   BTSync на службе у админа.   Андроид программы в Ubuntu.   Прокидывание портов для p2p.   Анти СПАМ в Postfix.  



Круги Гугл Ада.


Группа поддержки