4. Сборка системы при помощи пакета calculate-assemble¶
- Сборка системы при помощи пакета calculate-assemble
- Назначение
- Возможности
- Установка
- Использование
- Необходимые файлы
- Подготовка системы к сборке
- Проверка зависимостей
- Сборка системы
- Обновление системы
- Создание загрузочного образа
- Прерывание сборки
- Настройки
.
Во время сборки системы, все настройки собираемых систем хранятся в файле @/etc/calculate/assemble.env@. Если вам по какой-либо причине пришлось перезагрузить компьютер, удалите этот файл, а также, при необходимости, пустые директории @/mnt/<профиль>@.
Назначение¶
Пакет calculate-assemble предназначен для сборки загрузочного livecd образа дистрибутива с поддержкой установки на жесткий диск и USB-Flash. Calculate Linux версии 11.0 и выше. Кроме того, с помощью этого пакета утилит собираются Stage-образы.
Возможности¶
- поддерживаемые архитектуры: i686 и x86_64;
- профили сборки: Gentoo и Calculate данных архитектур;
- поддержка параллельной сборки нескольких дистрибутивов;
- поддержка сборки 32-битных дистрибутивов на 64-битной системе.
Установка¶
Пакет calculate-assemble входит в состав утилит Calculate 2 и требует для своей работы пакеты: calculate-install, calculate-builder, calculate-templates, calculate-lib.
Последнюю версию пакета calculate-assemble можно установить из оверлея Calculate, который включен по умолчанию во все дистрибутивы Calculate Linux. Чтобы подключить оверлей из Gentoo, установите пакет app-portage/layman (если он у вас не установлен) и подключите оверлей, выполнив:
layman -a calculate
После этого вы можете установить пакет командой:
emerge calculate-assemble
Использование¶
Все операции по сборке системы выполняются утилитами 'cl-assemble' и 'cl-make'. Для создания ISO-образа дистрибутива используется утилита 'cl-image', входящая в пакет sys-apps/calculate-builder.
Необходимые файлы¶
Для сборки вам понадобится выход в интернет и перечисленные ниже предварительно загруженные файлы.
Обязательные файлы:- stage3 образ Gentoo, либо ISO образ Calculate Linux, в т.ч. собранный вами.
Если вы намерены использовать для сборки образа stage3, создайте директорию:/var/calculate/remote/stages
и поместите туда архив 32-битной () или 64-битной системы (). Если для сборки будет использоваться образ Calculate Linux, поместите его в директорию:/var/calculate/remote/linux
- portage архив дерева портежей. Создайте директорию
/var/calculate/remote/snapshots
и поместите туда свежую версию портежей, например, .
Перед началом работы изучите справку команды 'cl-assemble', выполнив:
cl-assemble --help
Для сборки вам потребуется около 15 Гб свободного места на жестком диске. В случае создания бинарных пакетов необходимо выделить место и для них (около 5 Гб). Под образ дистрибутива понадобится около 2 Гб.
Сборка дистрибутива производится в отдельном разделе жесткого диска. Готовый образ и бинарные пакеты сохраняются в директории /var/calculate/remote. Поэтому позаботьтесь о наличии свободного места (2 Гб или 7 Гб) в /var/calculate/remote, а также свободного раздела около 15 Гб на жестком диске.
Подготовка системы к сборке¶
Подготовка системы к сборке выполняется командой:
cl-assemble
Основные опции
- -d DISK, --disk DISK - раздел для сборки системы
Убедитесь, что в разделе у вас не хранится информации. В случае необходимости выполните резервную копию ваших данных. Вся информация в разделе будет утеряна! - --march ARCH - выбор архитектуры операционной системы (i686 или x86_64)
Исходя из выбранной архитектуры, будет сформирован список совместимых профилей. - -p PROFILE, --profile - системный профиль, список возможных профилей можно получить, указав в параметре значение "list".
- --source SOURCE - базовый образ для сборки - 'stage' или 'SHORTNAME'.
За основу дистрибутива может быть взят stage3 образ Gentoo, либо любой образ Calculate Linux. В последнем случае следует указывать короткое имя дистрибутива, например "--stage=CDS". - --ver VER - версия собираемой системы
Целое либо дробное число номера версии. В качестве разделителя выступает точка. Поддерживается указание двух точек в номере версии. В случае отсутствия версии будет использована дата, состоящая из года, месяца и дня создания образа. - --name=SHORTNAME</NAME></SUBNAME> - наименование дистрибутива - сокращенное, полное, суффикс (пример: CLD/Calculate Linux Desktop/KDE)
Дополнительные опции
- --sync SYNC - установить предпочитаемое rsync зеркало для портежей. (начиная с версии 2.2.25-r4 можно использовать git зеркало)
- --no-unmount - не отключать раздел с собираемой системой, если произошла ошибка. (начиная с версии 2.2.25-r4 calculate-assemble не отключает разделы по умолчанию)
- --unmount - отключать раздел с собираемой системой, если произошла ошибка.
- --nobuildpkg - не создавать бинарные пакеты собранных программ.
При подготовке системы к сборке раздел для сборки системы будет отформатирован и примонтирован в директорию /mnt/<профиль>. Раздел будет отформатирован той же файловой системой, которая использовалась ранее, если она поддерживается утилитой.
Во время подготовки системы выполняются следующие шаги:
- Форматирование раздела
(для быстрой очистки) - Распаковка базового образа
- Распаковка портежей
(в случае наличия архива портежей в директории/var/calculate/remote/snapshots) - Настройка шаблонами assemble/prepare
- Подключение точек монтирования /dev, /dev/shm, /dev/pts, /proc, /sys, /var/calculate/remote
- Обновлениие портежей
- Установка layman
- Загрузка calculate overlay
- Настройка шаблонами assemble/setup
- Подключение calculate-install к конфигурированию пакетов
(в случае использования одного из профилей calculate) - Установка portage
- Получение исходного кода ядра
(из пакета calculate-sources, при наличии USE флага "vmlinuz" emerge компилирует и устанавливает ядро) - Установка v86d
- Обновление baselayout и установка openrc
(выполняется при использовании одного из профилей calculate) - Установка man-db
(выполняется при использовании одного из профилей calculate) - Выполнение etc-update
- Создание группы games(35)
(группы создаются для фиксации номеров ID) - Создание группы plugdev(440)
- Создание группы scanner(441)
- Отключение базового образа системы
Проверка зависимостей¶
После подготовки системы к сборке следует проверить зависимости и при необходимости исправить их, размаскировав пакеты. Выполнить это можно командой:
cl-make -D <-p профиль>
Обратите внимание, здесь и далее профиль дистрибутива можно указывать сокращённо. Например, для профиля "calculate/desktop/CLD/amd64" вы можете указать "CLD", "CLD/amd64", "desktop/amd64" или "amd64$". В последнем случае знак "$" в конце означает конец имени профиля. В случае если вы собираете одновременно только один дистрибутив, профиль можно не указывать.
Сборка системы¶
Сборка системы выполняется командой:
cl-make -m <-p профиль>
Во время сборки будут загружены все необходимые пакеты с исходными текстами программ в директорию /var/calculate/remote/distfiles. В случае если вы не указали параметр --nobuildpkg, будут созданы архивы бинарных пакетов программ в директории /var/calculate/remote/assemble/<профиль>/packages.
Обновление системы¶
Обновление образа системы, как и сборку, можно выполнить при помощи утилиты 'cl-make'. Для этого подготовьте систему к сборке при помощи утилиты 'cl-assemble' по описанию выше, указав образ обновляемого дистрибутива в опции --source.
Обновите систему командой:
cl-make -u <-p профиль>
Во время обновления выполняются следующие шаги:
- Настройка шаблонами assemble/prepare и assemble/setup
- Обновление портежей
- Выполнение 'emerge -u perl'
- Выполнение 'perl-cleaner all' (по необходимости)
- Выполнение 'emerge --noreplace calculate-meta'
- Выполнение 'emerge -D --newuse world'
- Выполнение 'emerge -uD world'
- Выполнение 'emerge --depclean'
- Выполнение 'module-rebuild -X rebuild' (по необходимости)
- Выполнение 'revdep-rebuild -i' (по необходимости)
- Выполнение 'prelink -afmR' (по необходимости)
- Сборка nvidia-drivers
- Чистка бинарного репозитория (по необходимости)
- Выполнение 'eix-update'
Вы можете также выполнить обновление системы без обновления портежей. Например, если обновление портежей было выполнено вручную, либо вы вносили определенные изменения с установкой пакетов, воспользовавшись chroot-доступом. Для обновления в этом случае выполните:
cl-make -U <-p профиль>
Помните, что вы всегда можете получить доступ к системе при помощи chroot, выполнив:
chroot /mnt/<профиль>
Пример:
chroot /mnt/calculate-desktop-CLDG-amd64-developer
В имени директории "профиль" все слэши "/" будут заменены на тире "-".
Обратите внимание: для доступа к собираемой 32-битной системе из-под 64-битной команду chroot следует выполнять так:
linux32 chroot /mnt/<профиль>
Пример:
linux32 chroot /mnt/calculate-desktop-CLDG-x86-developer
Создание загрузочного образа¶
После сборки или обновления системы можно создать загрузочный ISO-образ командой:
cl-image -p <профиль> iso
Дистрибутив будет сохранен в директории /var/calculate/remote/assemble/<профиль>/linux/. Помимо ISO-образа, будет создан файл с контрольными суммами и файл с составом программ.
Прерывание сборки¶
Прервать сборку с отмонтированием всех ресурсов можно, выполнив:
cl-make -p <профиль> --break
Настройки
.
Во время сборки системы, все настройки собираемых систем хранятся в файле /etc/calculate/assemble.env. Если вам по какой-либо причине пришлось перезагрузить компьютер, удалите этот файл, а также, при необходимости, пустые директории /mnt/<профиль>.¶
Для упрощения сборки служат внутренние переменные утилит, значения которых можно предопределить в файле calculate2.env, по одному из путей: /etc/calculate/calculate2.env, /var/calculate/calculate2.env или /var/calculate/remote/calculate2.env. Для этого создайте в нем секцию "[assemble]". Доступные переменные:
cl_assemble_sync- RSYNC-сервер (или git-сервер) для синхронизации.cl_assemble_branch- ветка репозитория портежей и оверлея (по умолчанию master)cl_assemble_available_dev- свободные разделы жесткого диска для сборки.
Примеры:
[assemble] cl_assemble_sync = 192.168.0.2/gentoo-portage cl_assemble_available_dev = /dev/sda5,/dev/sda6,/dev/sda7
[assemble] cl_assemble_sync = git://git.calculate.ru/dev/portage.git cl_assemble_branch = develop cl_assemble_available_dev = /dev/sda5,/dev/sda6,/dev/sda7Примечание:
- Вы можете поднять и использовать локальный RSYNC-сервер или GIT-сервер.
- В переменной cl_assemble_available_dev может быть указан один или несколько разделов, разделенных запятой. В этом случае раздел будет выбран случайно.