Интерактивная сборка системы

Введение

Интерактивная сборка - это новый подход в создании своего собственного загрузочного образа. Вы можете собирать необходимые пакеты, менять настройки и при этом видеть результат своей работы, сразу же тестируя собираемый дистрибутив.

При разработке нового метода сборки преследовались следующие цели:
  • Позволить каждому желающему создавать свой дистрибутив системы в соответствии с его взглядами и потребностями;
  • Сделать процесс сборки системы более легким и доступным.

Как работает 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

Выполните следующие шаги:

  1. загрузитесь с CD в режиме Builder
  2. выполните в терминале: cl-builder
  3. убедившись что цвет курсора изменился, установим браузер командой: emerge opera
  4. выйдем из chroot, набрав exit
  5. при необходимости подмонтируем свободный раздел жёсткого диска: mount /dev/sdaX /var/calculate
  6. сохраним изменения в новом файле с ISO образом: cl-image iso

Установка CLS на флешку и обновление дерева портежей

Для выполнения этой операции на компьютере должно быть установлено не менее 2 Гб оперативной памяти, т.к. на обновление дерева портежей может потребоваться достаточно большое количество памяти.

Выполните следующие шаги:

  1. загрузитесь с CD в обычном режиме
  2. установите систему на флешку: cl-install -d /dev/sdX1 (вместо sdX1 укажите необходимое устройство, например, sdb1)
  3. перезагрузите компьютер, выбрав загрузку с флешки, и выберите в меню загрузки режим Builder
  4. выполните в терминале команду cl-builder
  5. убедившись, что курсор изменил цвет, обновите дерево портежей, выполнив cl-update --sync-only
  6. выйдем из chroot, набрав exit
  7. обновите файл livecd.squashfs, выполнив: cl-image squash
  8. перезагрузите компьютер

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

Спасибо!