Сборка системы при помощи пакета calculate-assemble¶
Страница устарела. Для сборки систем, утилитами 3.4, используйте следующее руководство:
Назначение¶
Пакет calculate-assemble предназначен для сборки загрузочного LiveCD-образа дистрибутива с поддержкой установки на жесткий диск и USB Flash. Кроме того, с помощью этого пакета утилит собираются 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.
Использование¶
Все операции по сборке системы выполняются утилитами 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. В последнем случае следует указывать короткое имя дистрибутива, например "--source=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 - Настройка шаблонами 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 --update perl
- Выполнение perl-cleaner all (по необходимости)
- Выполнение emerge --noreplace calculate-meta
- Выполнение emerge -deep --newuse world
- Выполнение emerge --update --deep 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-CLD-amd64-developer
В имени директории "профиль" все слэши "/" будут заменены на тире "-".
Обратите внимание: для доступа к собираемой 32-битной системе из-под 64-битной команду chroot следует выполнять так:
linux32 chroot /mnt/<профиль>
Пример:
linux32 chroot /mnt/calculate-desktop-CLD-x86-developer
Создание загрузочного образа¶
После сборки или обновления системы можно создать загрузочный ISO-образ командой:
cl-image -p <профиль> iso
Дистрибутив будет сохранен в директории /var/calculate/remote/assemble/<профиль>/linux/. Помимо ISO-образа, будет создан файл с контрольными суммами и файл с составом программ.
Прерывание сборки¶
Прервать сборку с отмонтированием всех ресурсов можно, выполнив:
cl-make -p <профиль> --break
Настройки¶
Во время сборки системы все настройки собираемых систем хранятся в файле /etc/calculate/assemble.env. Если вам по какой-либо причине пришлось перезагрузить компьютер, удалите этот файл, а также, при необходимости, пустые директории /mnt/<профиль>.
calculate.env, по одному из путей: /etc/calculate/calculate.env, /var/calculate/calculate.env или /var/calculate/remote/calculate.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может быть указан один или несколько разделов, разделенных запятой. В этом случае раздел будет выбран случайно.