Система ревизий Calculate Linux 14

Утилита обновления системы cl-update во время синхронизации оверлеев и портежей может выполнить исправления системы (ревизии), среди которых:
# перенастройка пакетов без переустановки
# разрешение проблем с блокировками пакетов
# миграция софта (более гибко, чем мета-пакеты и сеты)
# исправление всевозможных ошибок
# миграция путей и настроек

Вся логика ревизий описана в шаблонах. Для этого существует событие обновления портежей.

Существует два типа ревизий: общие ревизии и ревизии обновлений world-файла, определяющего состав пакетов системы. Для предотвращения повторного выполнения, оба типа ревизий имеют свою нумерацию, которая сохраняется в файле ‘/etc/calculate/ini.env’.

В Calculate Linux начиная с 14 версии для этого отведены две секции ‘update’ и ‘update-distros’:

[update]
revision = ..
world = ..

[update-distros]
revision = ..
world = ..

В секции ‘update’ хранят свои изменения ревизии оверлея Calculate, в секции ‘update-distros’ ревизии оверлея Distros. С момента внедрения системы и до выхода 14-й версии дистрибутива, ревизий вышло около 100 и около 60 исправлений world-файла. Начиная с Calculate Linux 14, из-за разделения ревизий на два оверлея, счётчики ревизий были обнулены.

Ревизии оверлея Calculate выполняются для всех официальных дистрибутивов и их производных. Ревизии оверлея Distros выходят только для дистрибутивов этого оверлея. Владельцы своих профилей на Github или любом другом хостинге, по аналогии могут использовать секцию секцию в ini.env-файле с именем ‘update-XXX’, где XXX - название оверлея.

Пример из тестового оверлея Github:Lautre76:

[update-lautre76]
world = 2

В профиле Desktop-X вносятся изменения в world-файл, добавляя пакеты games-util/steam-launcher и www-client/firefox-bin.

По второму пункту это только в идеале. Все равно не далее как вчера и позавчера при обновлении выдавал ошибки как раз по блокировке пакетов, так что пришлось разгребать зависимости вручную.

Михаил, речь идёт о базовых пакетах системы, если вы ничего не меняете. В круг решаемых задач входит решение проблем при удалении ebuild-а из портежей, прописанного в дистрибутиве в world, решение коллизий при переносе файлов из одного пакета в другой, как это было недавно с пакетами chrome-binary-plugins и chromium и т.д.

При этом весь функционал остаётся доступен, если вы продолжаете использовать eix-sync && emerge -uDNa world, т.к. eix-sync вызывает cl-update для синхронизации.