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

Каналы snap.


Нравится вам или нет, понимаете ли вы, как работает механизм изоляции программ в snap или нет, но технология развивается и более активно теснит традиционый формат deb. На это есть объективные причины: выгода для сторонних, прикладных программистов; выгода для системных разработчиков; выгода для пользователей. Сейчас хотелось бы осветить более подробно такое понятие как каналы (channels) в мире snap.

Начнём издалека. В традиционном мире deb прямыми аналогами каналов snap являются знаменитые stable/testing/unstable. Манипулируя stable/testing/unstable в строке подключённого репозитория, мы как бы заявляем, а что нам нужно? Больше надёжности - stable? Чуть посвежее софт - testing? Я рисковый парень, давай сюда софт из-под пера автора - unstable!

Структура каналов

Понятие каналов (channels) позволяет пользователям "подписываться" на различные этапы развития конкретного ПО, будь то основной релиз или разрабатываемый релиз. Данный механизм так же позволяет пользователю остаться в рамка желаемой серии, если ваша структура треков (tracks) и каналов это позволяют.

Синтаксис следующий: трек-track/уровень-риска-risk-level/ветка-branch

  • track. Эта строка в свободной форме, типа 1.0, 2.0, trusty. Если строка трека пропущена, то неявно подразумевается трек - latest. Между треками пользователь автоматически не перемещается!
  • risk level. Строка из набора stable, candidate, beta, edge, позволяющая показать уровень стабильности, которую ожидает пользователь от ПО.
    • stable - стабильное, проверенное, вылизанное ПО
    • candidate - проверка небольших изменений кода перед дальнейшим попаданием в stable
    • beta - предварительные версии проверенных изменений
    • edge - последние изменения, возможно, непроверенные и без гарантий
  • branch. Опциональная строка, указывающая на временную ветку, полученную из risk level. Пример, fix-for-bug123.

Следует знать, что API, который использует, в том числе snap find, всегда возвращает результаты только для канала stable. Стабильность пользователей - превыше всего!

Объяснение на примере

GNOME Software умеет отображать каналы и позволяет пользователю переключиться на нужный в графическом режиме. Давайте на примере Skype разберём ход мыслей разработчиков. В принципе stable, candidate, beta, edge позволяют раскидать 4 версии ПО, но, благодаря трекам, у разработчиков в будущем появляется больше вариативности и, возможно, по этой причине они решили начать использовать треки. В нашем примере мы наблюдаем 2 трека: неявный latest и insider. Сейчас на треке в stable, candidate, beta, edge лежат одинаковые версии ПО, то есть с помощью треков разработчики разнесли обычный релиз (latest) и разрабатываемый для обкатки (insider).

В Терминале легко убедиться в правдивости вышесказанного. Если просто поставить Скайп, без указания чего-либо, то будет поставлен latest/stable - snap info skype

name:      skype
summary:   One Skype for all your devices. New features. New look. All Skype.
publisher: skype
contact:   https://www.skype.com/
license:   unknown
.....
snap-id: QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV
commands:
  - skype
tracking:            stable
installed:           8.16.0.4 (16) 109MB classic
refreshed:           2018-02-21 10:15:21 +0300 MSK
channels:                           
  stable:            8.16.0.4  (16) 109MB classic
  candidate:         ↑                    
  beta:              ↑                    
  edge:              ↑                    
  insider/stable:    8.17.76.1 (17) 109MB classic
  insider/candidate: ↑                    
  insider/beta:      ↑                    
  insider/edge:      ↑  

Разработчики MySQL, одни из первых, начали использовать понятие треков - Разработчики зовут на тесты MySQL.
Традиционный мир deb против нового snap.
Разработчики Canonical активно ставят на snap и поэтому в дневных сборках Ubuntu 18.04 Bionic Beaver программа GNOME Calculator сразу идёт через snap, а не deb. Все готовятся к массовому внедрению программ в snap пакетах.

    Twitter   


Разделы

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