- Сборка системы при помощи пакета calculate-assemble¶
- Возможности¶
- Установка¶
- Использование¶
- Необходимые файлы¶
- Подготовка системы к сборке¶
- Основные опции
- Дополнительные опции
- Проверка зависимостей¶
- Сборка системы¶
- Обновление системы¶
- Создание загрузочного образа¶
- Прерывание сборки¶
- Настройки¶
- 5. Установка и удаление программ¶
- Поиск программ¶
- Установка и удаление¶
- Размаскировка программ¶
- 1. Проверим доступные версии¶
- 2. Размаскируем устанавливаемые пакеты с зависимостями¶
Сборка системы при помощи пакета calculate-assemble¶
Пакет 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 (если он у вас не установлен) и подключите оверлей, выполнив:
После этого вы можете установить пакет с помощью 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 , выполнив:
Для сборки вам потребуется около 15 Гб свободного места на жестком диске. В случае создания бинарных пакетов необходимо выделить место и для них (около 5 Гб). Под образ дистрибутива понадобится около 2 Гб.
Сборка дистрибутива производится в отдельном разделе жесткого диска. Готовый образ и бинарные пакеты сохраняются в директории /var/calculate/remote . Поэтому позаботьтесь о наличии свободного места (2 Гб или 7 Гб) в /var/calculate/remote , а также свободного раздела около 15 Гб на жестком диске.
Подготовка системы к сборке¶
Подготовка системы к сборке выполняется командой:
Основные опции
- -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 — наименование дистрибутива — сокращенное, полное, суффикс (пример: 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)
- Отключение базового образа системы
Проверка зависимостей¶
После подготовки системы к сборке следует проверить зависимости и при необходимости исправить их, размаскировав пакеты. Выполнить это можно командой:
Обратите внимание, здесь и далее профиль дистрибутива можно указывать сокращённо. Например, для профиля «calculate/desktop/CLD/amd64» вы можете указать «CLD», «CLD/amd64», «desktop/amd64» или «amd64$». В последнем случае знак «$» в конце означает конец имени профиля. В случае если вы собираете одновременно только один дистрибутив, профиль можно не указывать.
Сборка системы¶
Сборка системы выполняется командой:
Во время сборки будут загружены все необходимые пакеты с исходными текстами программ в директорию /var/calculate/remote/distfiles . В случае если вы не указали параметр —nobuildpkg , будут созданы архивы бинарных пакетов программ в директории /var/calculate/remote/assemble//packages .
Обновление системы¶
Обновление образа системы, как и сборку, можно выполнить при помощи утилиты cl-make . Для этого подготовьте систему к сборке при помощи утилиты cl-assemble по описанию выше, указав образ обновляемого дистрибутива в опции —source .
Обновите систему командой:
Во время обновления выполняются следующие шаги:
- Настройка шаблонами 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-доступом. Для обновления в этом случае выполните:
Помните, что вы всегда можете получить доступ к системе при помощи chroot , выполнив:
chroot /mnt/calculate-desktop-CLD-amd64-developer
В имени директории «профиль» все слэши «/» будут заменены на тире «-«.
Обратите внимание: для доступа к собираемой 32-битной системе из-под 64-битной команду chroot следует выполнять так:
linux32 chroot /mnt/calculate-desktop-CLD-x86-developer
Создание загрузочного образа¶
После сборки или обновления системы можно создать загрузочный ISO-образ командой:
Дистрибутив будет сохранен в директории /var/calculate/remote/assemble//linux/ . Помимо ISO-образа, будет создан файл с контрольными суммами и файл с составом программ.
Прерывание сборки¶
Прервать сборку с отмонтированием всех ресурсов можно, выполнив:
Настройки¶
Во время сборки системы все настройки собираемых систем хранятся в файле /etc/calculate/assemble.env . Если вам по какой-либо причине пришлось перезагрузить компьютер, удалите этот файл, а также, при необходимости, пустые директории /mnt/ .
- 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 может быть указан один или несколько разделов, разделенных запятой. В этом случае раздел будет выбран случайно.
5. Установка и удаление программ¶
Перед установкой программ обновите локальный репозиторий пакетов. Обновлять репозиторий следует не чаще 1 раза в день.
Для обновления достаточно выполнить с правами пользователя root команду:
Программа обновит дерево портежей, оверлей Calculate, а затем синхронизирует свой локальный кэш, используемый при поиске программ.
Поиск программ¶
В программу emerge включен инструмент поиска программ, однако вы можете воспользоваться более быстрым инструментом — программой eix .
В первом случае поиск производится по названию пакета, во втором — по описанию.
Установка и удаление¶
Установка и удаление программ производится при помощи программы emerge. При установке новой программы сначала определяется необходимость в установке дополнительных пакетов (зависимостей), а затем скачиваются и компилируются исходные тексты. Помните, что для установки программ вам потребуется наличие интернета и некоторое время для компиляции. Программы, требующие значительного времени для компиляции (например, LibreOffice), распространяются в виде готовых к установке бинарных пакетов; их можно опознать по суффиксу «-bin».
Пример установки игры «Цивилизация» и бинарного LibreOffice:
emerge -bk games-strategy/freeciv emerge libreoffice-bin
Параметры -bk создают локальный архив скомпилированного пакета, а при его наличии программа устанавливается из этого архива, минуя стадию компиляции. Инструкцию по работе с программой emerge можно прочесть здесь.
Пример удаления игры «Цивилизация»:
emerge -cv games-strategy/freeciv
Переменные DISTDIR и PKGDIR указывают путь к локальным папкам, в которых сохраняются исходные тексты программ и откомпилированные пакеты. Посмотреть значения этих (и многих других) переменных, используемых emerge , можно с помощью команды
Размаскировка программ¶
Как правило, портежи содержат несколько версий программы, часть из которых отмечены как нестабильные. Нестабильная версия вовсе не означает, что она нестабильно работает — просто на данный момент эта версия не прошла достаточного тестирования. Вы можете установить как стабильную, так и нестабильную версию программы.
Для установки нестабильных программ их нужно предварительно размаскировать. Для примера установим нестабильный на данный момент Firefox 22.0.
1. Проверим доступные версии¶
eix firefox www-client/firefox Available versions: *10.0.11 17.0.5 17.0.6 17.0.7 ~21.0 ~22.0 .
2. Размаскируем устанавливаемые пакеты с зависимостями¶
Удостоверьтесь, что директория /etc/portage/package.keywords/ не пустая, иначе выполните:
touch /etc/portage/package./custom
emerge --autounmask-write =www-client/firefox-22.0
Нажмите «u» для подтверждения внесенных изменений.