{{TOC}}
Формирование профиля системы в Calculate Linux 14
Как правило, любой продвинутый пользователь настраивает gentoo-based систему под себя. Обычно, сюда входят настройки опций сборки пакетов, флаги компиляции, состав пакетов и т.д. Calculate не ломает обратную совместимость, предоставляя весь богатый функционал портежей. Настройки пакетного менеджера задаются при помощи профиля дистрибутива из оверлея Calculate.
Профиль дистрибутива CLDX 13:
Calculate (calculate/desktop/CLDX) -> Portages
Здесь видно, что все настройки профиля Calculate Linux хранятся в оверлее, а за основу взят оригинальный профиль Portage, модифицируемый профилем под особенности дистрибутива.
Помимо оригинальных настроек портежей, профиль Calculate Linux включает дополнительные настройки переменных утилит Calculate, а так же шаблоны, используемые в Calculate для настройки системы. Для гибкости, в Calculate Linux 14 все статические переменные были так же перенесены в оверлей.
В итоге, профиль открывает поистине богатый функционал, отвечая за настройки буквально всего, начиная от настроек портежей и утилит Calculate и заканчивая формированием состава пакетов дистрибутива, управляемых при помощи шаблонов. В профиле можно хранить свои ebuild-файлы, настройки программ, патчи, флаги сборки и т.д. Перечень поистине колоссальный.
В CL14 мы решили пойти дальше, и создали инструменты, при помощи которых пользователь мог бы с лёгкостью создать и интегрировать свой профиль с системой. Для этого оверлей Calculate был разделён на два: оверлей “Calculate”, включающий только базовые профили (desktop и server), шаблоны и ebuild-ы, а так же оверлей дистрибутива “Distros”, включающий профили дистрибутивов (CLD, CLDX, CLS, CMC, CDS и CSS).
Профиль дистрибутива Calculate Linux Desktop 14 XFCE:
Distros (CLDX) -> Calculate (desktop) -> Portages
Вы можете скопировать себе Distros, удалить лишние профили и создать на основе одного из профилей дистрибутивов свой вариант. В этом случае схема формирования профиля будет выглядеть так:
MyOverlay (Desktop-X) -> Calculate (desktop) -> Portages
Где: MyOverlay и Desktop-X - название оверлея и короткое имя дистрибутива. Имена взяты произвольно.
Другим вариантом можно создать новый профиль, наследующий профиль одного из дистрибутивов оверлея Distros. В этом случае схема наследования профиля будет такой:
MyOverlay (Desktop-X) -> Distros (CLDX) -> Calculate (desktop) -> Portages
С точки зрения портежей, логика осталась прежней, она лишь разделилась на несколько оверлеев.
Смена профиля
Для того, чтобы опробовать новые возможности, следует перейти на Calculate Linux 14. В ближайшее время обновление будет доступно для CL13.
В качестве примера в GitHub есть репозиторий lautre76 с профилем дистрибутива “Desktop-X”.
Помните, 9 месяцев назад мы написали статью Быстрый старт в GitHub ? Теперь она может пригодиться!
Профиль наследует настройки CLDX. Соответственно, он будет отличаться от стокового дистрибутива только теми изменениями, которые вы в нём укажете.
Для смены профиля в CL14 используйте команду cl-update-profile. По умолчанию, утилита работает с профилями текущего оверлея. Выполнение команды cl-update-profile list покажет текущий и доступные профили оверлея:
[CLD] distros:CLD/amd64
[CLDX] distros:CLDX/amd64 *
[CLS] distros:CLS/amd64
[CMC] distros:CMC/amd64
[CDS] distros:CDS/amd64
[CSS] distros:CSS/amd64
Для того, чтобы указать профиль из произвольного репозитория, добавьте параметр “–url”:
cl-update-profile --url=git://github.com/lautre76/overlay.git list
Для GitHub можно использовать сокращённый формат:
cl-update-profile --url=github:lautre76 list
В итоге, вы увидите доступный на данный момент тестовый профиль:
[Desktop-X] lautre76:Desktop-X/amd64 *
Переключиться на новый профиль можно выполнив:
cl-update-profile --url=github:lautre76 Desktop-X
Либо, если профиль всего один, его имя можно не указывать:
cl-update-profile --url=github:lautre76
Пример подключения профиля из стороннего репозитория:
# cl-update-profile --url=github:lautre76 Desktop-X
Репозиторий
* Название репозитория: lautre76
* Ветка репозитория: master
Профиль
* Профиль системы: lautre76:Desktop-X/amd64
* Название дистрибутива: Lautre Desktop-X 14
* Используемые репозитории:
+---------+--------------------------------------------+
|Название |URL |
+---------+--------------------------------------------+
|lautre76 |git://github.com/lautre76/overlay.git |
|distros |git://git.calculate.ru/calculate/distros.git|
|calculate|git://git.calculate.ru/calculate/overlay.git|
|portage |git://git.calculate.ru/calculate/portage.git|
+---------+--------------------------------------------+
Запустить процесс? (Yes/No):
Хотите сменить название системы отображаемое в консоли? За формирование ‘/etc/issue’ отвечает пакет sys-apps/baselayout. Перенастройте пакет, чтобы внести изменения:
cl-core-setup --pkg-name=baselayout
Чтобы увидеть изменения в загрузчике, выполните `cl-setup-boot`.
Состав профиля
Здесь я перечислю несколько файлов, которые вы увидите в профиле из примера.
Для наследования портежами eclass-ов, перечислены наследуемые профили:
cat /var/lib/layman/lautre76/metadata/layout.conf
masters = distros calculate gentoo
Название репозитория (для GitHub рекомендуется использовать тоже имя, что и имя вашей учётки):
cat /var/lib/layman/lautre76/profiles/repo_name
lautre76
Перечень доступных профилей:
cat /profiles/profiles.desc
amd64 Desktop-X/amd64 stable
x86 Desktop-X/x86 stable
Чтобы иметь возможность использовать шаблоны из своего репозитория, следует, соблюдая порядок, указать название и пути к шаблонам в переменных ‘cl_template_location’ и ‘cl_template_path’. Установка ‘cl_update_rep_name’ и ‘cl_update_rep_url’ укажет на базовые репозитории для обновления:
cat /profiles/calculate.env
[main]
cl_template_location = calculate,distros,lautre76,local,remote
cl_template_path = /var/lib/layman/calculate/profiles/templates,/var/lib/layman/distros/profiles/templates,/var/lib/layman/lautre76/profiles/templates,/var/calculate/templates,/var/calculate/remote/templates
[update]
cl_update_rep_name = portage,calculate,distros,lautre76
cl_update_rep_url = git://git.calculate.ru/calculate/portage.git,git://git.calculate.ru/calculate/overlay.git,git://git.calculate.ru/calculate/distros.git,git://github.com/lautre76/overlay.git
Непосредственно в директории профиля дистрибутива можно указать его название (полное имя, модификация, короткое имя):
cat /var/lib/layman/lautre76/profiles/Desktop-X/calculate.env
[main]
os_linux_name = 'Lautre Desktop-X'
os_linux_subname = ''
os_linux_shortname = Desktop-X
Через ‘parent’ вы указываете наследование директорий при формировании профиля. Здесь видно, что в начале берутся настройки из репозитория Distros (CLDX).
cat /var/lib/layman/lautre76/profiles/Desktop-X/amd64/parent
../../../../distros/profiles/CLDX/amd64
..
Формирование world файла
Наполнение /var/lib/portage/world пакетами происходит при помощи шаблонов. В CL13 для этого выполняется проверка на короткое имя дистрибутива (os_linux_shortname). В случае смены имени на новое, шаблоны пришлось бы полностью переносить в свой оверлей. Для решения этой проблемы, в CL14 была добавлена новая переменная “main.os_linux_pkglist” и доработана функция in(), для поддержки сравнения значений массива с массивом.
Как это работает, можно посмотреть выполнив:
cl-core-variables-show --filter pkglist
* Список переменных
+---------------------+-----+------------+-------------------+
|Переменная |Режим|Расположение|Значение |
+---------------------+-----+------------+-------------------+
|main.os_linux_pkglist| wl | |base,CLDX,Desktop-X|
+---------------------+-----+------------+-------------------+
Здесь видно, что переменная содержит массив значений: “base”, “CLDX” и “Desktop-X”. Переменная доступна для записи.
Чтобы сгенерировать новый world файл, включая изменения в шаблонах Desktop-X, выполните:
cl-update --rebuild-world
Корпоративные пользователи
Следует отметить одну особенность использования своего профиля в системах, работающих в локальной сети и использующих единую систему авторизации Calculate Directory Server.
По умолчанию, профили пользователей хранятся в директории:
/var/calculate/server-data/samba/profiles/unix/LOGIN/SHORTNAME
Где LOGIN - учётная запись пользователя, SHORTNAME - короткое имя дистрибутива.
Обратите внимание, если вы создаёте отличное от используемого имя дистрибутива, скопируйте профиль под новым именем, либо установите значение переменной client.cl_profile_all_set в значение “on” в файле “/var/calculate/remote/calculate.env” на сервере. В этом случае, профили пользователей будут храниться в единой директории “all”. Потребуется также скопировать их из старых путей.
Проверить значение переменной, можно выполнив:
# cl-core-variables-show --filter cl_profile_all_set
* Список переменных
+-------------------------+-----+------------+--------+
|Переменная |Режим|Расположение|Значение|
+-------------------------+-----+------------+--------+
|client.cl_profile_all_set| wb | remote |off |
+-------------------------+-----+------------+--------+
Использовать различные директории хранения профиля пользователя в случае использования разных дистрибутивов на наш взгляд является лучшим решением. Особенно это выглядит очевидным, при использовании таких дистрибутивов, как CLD и CLDX, где состав пакетов заметно отличается. В случае же использования сетевого компьютера, чем меньше профиль, тем быстрее пользователи входят в сеанс.
Заключение
В Calculate Linux использование своего оверлея это не просто ряд ebuild-файлов, необходимых вам в работе, которые вы переносите в свой gentoo-оверлей, чтобы иметь возможность устанавливать необходимый софт. Это так же не просто изменение свойств пакетного менеджера. Подключение своих шаблонов даёт полный контроль над настройками софта, как системного, так и пользовательского. Постепенный перенос настроек в шаблоны позволит с легкостью создавать новые сеансы с настройками изменёнными под ваши предпочтения. Возможности только открываются…