Введение в шаблоны Calculate в изложении для инопланетян

Блог Всячепуза
 
/usr/share/calculate/templates
шаблоны утилит Calculate
/var/calculate/templates
шаблоны пользователя

Утилиты сборки

cl-builder
скрипт, выполняющий монтирование /dev/pts и /dev и /proc, а также копирование resolv.conf и выполнение chroot, и обратные операции после команды exit
окажетесь в chroot-окружении /mnt/builder
cl-image (из sys-apps/calculate-builder)
скрипт, создающий iso-файл

сохраним изменения в новом файле с ISO образом: cl-image iso
iso - это тут название параметра команде cl-image, или название самого iso-файла?
cl-image squash
обновляет файл livecd.squashfs
ага, всё-таки параметр. iso-файл с каким названием тогда, получается, создаётся? тут
cl-assemble
изучите справку команды cl-assemble, выполнив:
cl-assemble --help
ну нет, просто бы сказали - он а что внутри себя вызывает cl-image и cl-builder или что делает в целом? тут
-p PROFILE, --profile - системный профиль, список возможных профилей можно получить, указав в параметре значение "list".
раздел для сборки системы будет отформатирован и примонтирован в директорию /mnt/<профиль>
--source SOURCE - базовый образ для сборки - 'stage' или 'SHORTNAME'.
За основу дистрибутива может быть взят stage3-образ Gentoo, либо любой образ Calculate Linux. В последнем случае следует указывать короткое имя дистрибутива, например "--source=CDS".
cl-make
Сборка системы выполняется командой:
cl-make -m <-p профиль>
Во время сборки системы все настройки собираемых систем хранятся в файле /etc/calculate/assemble.env

архивы бинарных пакетов программ в директории /var/calculate/remote/assemble/<профиль>/packages.

Структура сборки

файловая система монтируется из трех слоев aufs2 (почему не overlayfs?)
/mnt/scratch/calculate
livecd.squashfs-образ системы, загружаемый с носителя и примонтированый в режиме "только для чтения"
Свежеустановленные программы будет видны в слоях 2 и 3 (и в образе и на загруженной системе).
действия в загруженной системе не затронут /mnt/builder (который, очевидно, монтируется из слоёв 1 и 2)
Зачем нужен "базовый ISO образ, или какой-нибудь stage3", если есть livecd.squashfs?

режим Builder

выберите в меню загрузки режим Builder
как устроен этот режим?
есть гипотеза, что пункт меню grub передаёт параметр в init-скрипт, а init-script монтирует все те три слоя, про которые шла речь в пункте "структура сборки", надо этой гипотезе поискать подтверждения по исходникам

При недостаточном объеме оперативной памяти следует установить CLS на жесткий диск в режиме Builder, тогда все изменения будут кэшироваться на жестком диске.
(Команда cl-image squash при этом будет не доступна, а результат работы можно получить в виде готового ISO образа, при помощи команды cl-image iso)
Круто, а как "установить в режиме" ?

Установка пакетов

примонтируйте свободный раздел жесткого диска либо сетевого диска в директорию
/var/calculate/linux
cl-update --sync-only
обновить дерево портежей

livecd.squashfs - цикл редактирования

вы можете сохранить все изменения в файле livecd.squashfs на вашей флешке.
К концу файла будет добавлен порядковый номер сборки.

При последующих сборках старые файлы с образами будут удалены.
(что имеется в виду? разве старый файл не во время копирования затирается?)

Возможность модификации полученного дистрибутива с помощью загрузки в Builder-режиме сохраняется.
Таким образом, вы можете неограниченное число раз менять состав пакетов
обычным для Gentoo образом - через обновление дерева портежей.

Запись .iso на диск

cl-install -d /dev/sdX1 (вместо sdX1 укажите необходимое устройство, например, sdb1)

Откуда берутся скрипты сборки

установите пакет app-portage/layman (если он у вас не установлен)
подключите оверлей, выполнив:
layman -a calculate
emerge -av calculate-assemble

# layman -i calculate

 * calculate
 * ~~~~~~~~~
 * Source : git://git.calculate.ru/calculate/overlay.git
 * Contact : at@calculate.ru
 * Type : Git; Priority: 50
 * Quality : experimental
 *
 * Description:
 * Calculate Overlay
 *
 * Link:
 * http://www.calculate-linux.org

http://git.calculate.ru/?p=calculate/overlay.git;a=tree

git.calculate.ru/?p=calculate/overlay.git;a=blob;f=sys-apps/calculate-assemble/calculate-assemble-2.2.32-r9.ebuild

stage3

для сборки образа stage3, создайте директорию var/calculate/remote/stages и поместите туда архив
(в смысле "образа" или "из образа"?)

Если для сборки будет использоваться образ Calculate Linux, поместите его в директорию /var/calculate/remote/linux
в чём разница между /var/calculate/remote/linux и /var/calculate/linux ?

Разные ссылки

http://www.calculate-linux.ru/main/ru/interactive_system_build
http://www.calculate-linux.ru/main/ru/calculate-assemble