Интерактивная сборка системы¶
Введение¶
Интерактивная сборка - это новый подход в создании своего собственного загрузочного образа. Вы можете собирать необходимые пакеты, менять настройки и при этом видеть результат своей работы, сразу же тестируя собираемый дистрибутив.
При разработке нового метода сборки преследовались следующие цели:- Позволить каждому желающему создавать свой дистрибутив системы в соответствии с его взглядами и потребностями;
- Сделать процесс сборки системы более легким и доступным.
Как работает Calculate Builder
Использование интерактивного режима сборки доступно во всех дистрибутивах Calculate Linux начиная с версии 9.8. Для использования режима сборки воспользуйтесь режимом загрузки Builder на USB Flash или LiveCD.
Во время загрузки в Builder-режиме файловая система монтируется из трех слоев aufs2:
- Первый слой, calculate, представляет собой livecd.squashfs-образ системы, загружаемый с носителя и примонтированый в режиме "только для чтения". Он берётся за основу будущего дистрибутива.
- Второй слой - delta - слой, в котором будут сохраняться все изменения во время сборки нового дистрибутива.
- Третий слой, workspace, - рабочий слой, в котором Вы производите все изменения над исходной системой.
После загрузки все три слоя будут доступны в директории /mnt/scratch
.
Вы можете запускать программы, менять настройки, создавать файлы - все ваши изменения будут сохраняться в слое workspace, не внося изменений в итоговый образ нового дистрибутива.
Интерактивная сборка происходит в директории /mnt/builder
, являющейся результатом объединения двух слоев - calculate и delta. Вы также можете видеть все происходящие изменения, выполняя в процессе сборки необходимое тестирование собираемых приложений.
Процесс сборки системы¶
В пакет calculate-builder
входит утилита cl-builder
, которая используется для перехода в интерактивный режим сборки. Выполните cl-builder для подготовки системы к сборке. После выполнения команды приглашение в командной строке изменит свой цвет на коричневый (цвет может быть другим в зависимости от типа терминала) и вы окажетесь в chroot-окружении /mnt/builder
. Директории /proc
, /dev
, /dev/pts
, /usr/calculate/share
базовой системы будут примонтированы автоматически, а также перенесён файл resolv.conf
. Таким образом, сразу после выполнения cl-builder
можно приступить к изменениям системы. Вы можете обновить дерево портежей (команда cl-update --sync-only
), а также обновлять, устанавливать или удалять программы. Результат установки программ будет отражаться и на загруженной системе. При этом все ваши действия в загруженной системе не затронут /mnt/builder
и останутся только в слое workspace. Для избежания конфликтов в работе программ перед установкой пакетов всегда выполняйте команду cl-builder
.
По завершении сборки выйдите из chroot-окружения, набрав в консоли exit
либо нажав комбинацию клавиш Ctrl+D.
Шаблоны установки¶
Шаблоны - это конфигурационные файлы, в которых хранятся изменения настроек программ. Шаблоны могут содержать условные блоки, а также внутренние переменные для более гибкой настройки системы.
Шаблоны утилит Calculate хранятся в директории /usr/share/calculate/templates
. По аналогии с ними вы можете создать свои шаблоны в директории /var/calculate/templates
.
Сохранение внесенных изменений¶
После того как вы закончили работу над изменениями текущего дистрибутива и вышли из chroot-окружения, вы можете создать загрузочный образ LiveCD, включающий все внесённые изменения. Для этого воспользуйтесь командой
cl-image iso
Загрузочный образ будет создан в файле с расширением .iso в директории /var/calculate/linux
.
Если вы загружались с CD либо USB-Flash, то для всех действий может не хватить оперативной памяти компьютера. Чтобы избежать этого, примонтируйте свободный раздел жесткого диска либо сетевого диска в директорию /var/calculate/linux
.
При загрузке с USB Flash вы можете сохранить все изменения в файле livecd.squashfs
на вашей флешке. К концу файла будет добавлен порядковый номер сборки. При следующей загрузке будет использован новый образ со всеми изменениями. При последующих сборках старые файлы с образами будут удалены.
Установка системы¶
Полученный в результате изменений текущей системы ISO образ на 100% совместим с Gentoo и обладает всеми свойствами Calculate Linux. Систему можно загрузить с LiveCD, установить на жесткий диск, записать на USB Flash либо переносной USB-HDD. Возможность модификации полученного дистрибутива с помощью загрузки в Builder-режиме сохраняется. Таким образом, вы можете неограниченное число раз менять состав пакетов обычным для Gentoo образом - через обновление дерева портежей.
Примеры¶
Добавление в дистрибутив CLS браузера Opera, используя загрузочный CD¶
Выполните следующие шаги:
- загрузитесь с CD в режиме Builder
- выполните в терминале:
cl-builder
- убедившись что цвет курсора изменился, установим браузер командой:
emerge opera
- выйдем из chroot, набрав
exit
- при необходимости подмонтируем свободный раздел жёсткого диска:
mount /dev/sdaX /var/calculate
- сохраним изменения в новом файле с ISO образом:
cl-image iso
Установка CLS на флешку и обновление дерева портежей¶
Для выполнения этой операции на компьютере должно быть установлено не менее 2 Гб оперативной памяти, т.к. на обновление дерева портежей может потребоваться достаточно большое количество памяти.
Выполните следующие шаги:
- загрузитесь с CD в обычном режиме
- установите систему на флешку:
cl-install -d /dev/sdX1
(вместоsdX1
укажите необходимое устройство, например,sdb1
) - перезагрузите компьютер, выбрав загрузку с флешки, и выберите в меню загрузки режим Builder
- выполните в терминале команду
cl-builder
- убедившись, что курсор изменил цвет, обновите дерево портежей, выполнив
cl-update --sync-only
- выйдем из chroot, набрав
exit
- обновите файл livecd.squashfs, выполнив:
cl-image squash
- перезагрузите компьютер
При недостаточном объеме оперативной памяти следует установить CLS на жесткий диск в режиме Builder, тогда все изменения будут кэшироваться на жестком диске. Команда cl-image squash
при этом будет не доступна, а результат работы можно получить в виде готового ISO образа, при помощи команды cl-image iso
.