Обновление утилиты смены профиля

Новое возможности

В новой версии утилит Calculate 3.2.2 утилита смены профиля cl-update-profile будет заметно доработана. В ней появится:
# Выбор способа обновления списка пакетов системы (по умолчанию обновление)
# Обновление настроек системы (действие по умолчанию)
# Метод обновления конфигурационных файлов
# Выбор используемых шаблонов

Теперь для полного переключения на свой профиль достаточно выполнить:

cl-update-profile --url=github:ИМЯ --rebuild-world
cl-update

Первым действием будут подключены необходимые оверлеи, в т.ч. зависимые, состав пакетов системы (файл “/var/lib/portage/world”) будет пересоздан. Вторым действием установятся новые и изменённые по флагам пакеты профиля, а так же удалятся более не используемые. Обратите внимание на то, что при переключении профиля по умолчанию теперь выполняется обновление настроек системы (отключается опцией ‘–skip-setup-system’).

Вместо “–rebuild-world” вы можете использовать опцию “–merge-world” для того, чтобы только дополнить список пакетов системы пакетами, сформированными шаблонами профиля, без удаления вашего списка.

Наконец действие “–update-world” при переходе на профиль впервые просто зафиксирует версию состава пакетов профиля и в дальнейшем будет их обновлять. Если вы переключаетесь на профиль повторно, обновление списка пакетов затронут только те изменения, которые произошли в профиле за это время.

Для разработчиков

Вся логика настройки списка пакетов по прежнему построена на шаблонах оверлея. Поэтому пользователям своих оверлеев необходимо внести изменения в свои шаблоны настройки world-файла списка пакетов профиля вашей системы для поддержки новых опций утилит 3.2.2.

Все шаблоны связаны с событием “ac_update_sync”, во время выполнения шаблонов программа обновления отображает выводит на экран следующее сообщение:

Конфигурация системы
 * Исправление настроек ...                                               [ ok ]

В утилитах Calculate 3.2.2 переменная cl_update_world содержит одно из трёх значений:

  • “rebuild” - переформировать список пакетов
  • “merge” - объединить список пакетов
  • “update” - обновить список пакетов

Для примера, можно посмотреть логику реализации шаблонов в оверлеях Calculate и Distros, см. ветку “templates/3.2/6_ac_update_sync”.

Для удобства, в шаблонах утилит была добавлена новая ветка “remerge”, в которую из “revision” были перенесены шаблоны обновления настроек пакетов. Таким образом, в настоящее время существует три ветки исправления настроек:

  • “remerge” - обновление настроек пакетов
  • “revision” - ревизии системы, устраняющие ошибки, выполняющие миграцию и т.д. - всё то, что обычным способом не устранить.
  • “world” - обновления списка пакетов системы

Так же претерпело изменение размещение настроек в секциях файла “/etc/calculate/ini.env”. Настройки ревизий оверлеев хранятся в следующем виде:

[overlay-calculate]
remerge = 3
world = 1
revision = 13


[overlay-distros]
revision = 1
world = 12

Будет логично, если для своего оверлея вы будете именовать секцию таким же образом - “overlay-ИМЯ”. Ревизией можно перенести настройки из старых путей.