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

Krita в snap.


Формат пакета deb придуман людьми, которые пишут операционные системы, а не прикладными программистами, тем более сторонними. Deb пакет подразумевает - эй, парни, айда к нам, давай вместе делать систему нашей мечты. Но жизнь сложнее и на практике сторонний программист хотел бы одного - своё скомпилированное детище как можно легче оформить в нечто, что быстро попадёт в официальный репозиторий.

Сам не программирую давно, но представляю ад для обычного разработчика. Как минимум 2 популярных формата пакета: rpm и deb. Для основных дистрибутивов и их актуальных версий нужно проверить корректность установки/удаления пакета программы. Нужно проверить, чтобы зависимости пакета нормально разрешались (dependency resolution) в данном дистрибутиве данного релиза. Многие программисты могут резонно воскликнуть: "идите-ка в /dev/ass со своим зоопарком линуксов".

Поэтому в мире линукс есть понятие майнтейнера (maintainer) пакета и часто он с автором программы - разные люди. То есть автор (upstream проекта) ваяет новые версии программы, а майнтейнер отслеживает и прилагает титанические усилия по оформлению новой версии в виде нового пакета для данного дистрибутива линукс. То есть множество майнтейнеров различных дистрибутивов линукс делают схожие вещи для того, чтобы пользователь их дистрибутива получил новшества.

Автор выпустил новую версию, майнтейнеру нужно время для сборки/проверки. Думаете на этом всё? Многие дистрибутивы линукс не проповедуют философию rolling release, а используют понятие time-based. Выходит релиз и с ним выходят программы с определёнными версиями и обычно всё "замораживается" до следующего релиза.

На лицо временные затраты от появления новой версии программы до попадания к пользователям. Вынужденные лишние сущности в лице майнтейнеров, так как автор может (и часто) не заниматься сборкой программы под огромное количество "дистрибутив + версии релиза".

Canonical создала формат самодостаточного пакета snap как попытку решить все описанные проблемы. От автора программы не нужно ничего, кроме небольшого YAML файла, в котором в декларативной форме пишется требуемое. Из обязательных полей только три поля! Если нет исключений из правил для AppArmor, то пакет автоматически будет одобрен для попадания в официальный репозиторий. Это убирает сущность "майнтейнер" и убирает временные задержки между "автор написал новую стабильную версию" и "пакет в репозитории".

Такие вкусняшки не могут не радовать сердце сторонних программистов и вот уже точно:
Проект MATE пробует snap
Mozilla будет оформлять Firefox в snap

Krita в snap пакете

Разработчик Canonical Майкл Холл (Michael Hall) написал коротенькую заметку в G+ где указал, что snap создан не только для простеньких программ, на примере которых учатся упаковывать пионеры. Майкл взял известную программу Krita прямо из upstream проекта и, по его словам, относительно легко оформил в виде snap пакета.

Пользователи в комментариях ринулись ставить новую Krita - sudo snap install krita, но Майкл остудил пылкий порыв. Krita нет в Ubuntu Store. Майкл поступил очень грамотно! Он не стал делать из себя майнтейнера и выступать лишним звеном между авторами и пользователями. Майкл связался с авторами Крита и помог им уже созданным YAML файлом. Дальше авторы графического редактора уже сами смогут легко оформлять своё детище в snap пакет и публиковать в Ubuntu Store.

Браво Майкл!

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

RSS vasilisc.com   


Разделы

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