Сборка дистрибутива


Сборка Frenzy проходит с помощью специализированного набора скриптов.

Структура сборочных скриптов
Каталог Назначение
FRENZY/cd Содержимое компакт-диска с Frenzy
FRENZY/fs Корневая файловая система Frenzy
ISO Папка, в которой будет сохранен готовый ISO-образ
packages/FreeBSD.std Пакаджи FreeBSD, комплект для Frenzy standard
packages/FreeBSD.ext Пакаджи FreeBSD, комплект для Frenzy extended
packages/Frenzy Специальные пакаджи для Frenzy
packages/frenzypkg Исходники некоторых пакаджей для Frenzy
packages/tools Утилиты для сборки пакаджей
stages Каталог с основными скриптами для сборки
stages/base Конфигурационный файл ядра и make.conf для сборки системы
stages/boot Сборка загрузочного образа frenzyroot
stages/iso Файлы для сборки iso-образа
stages/lite Список файлов для удаления из базовой системы
stages/patches Патчи, накладываемые после сборки системы и установки пакаджей
stages/pkglite/files Патчи к установленным пакаджам (удаление файлов, модификация)
stages/pkglite/lib Скрипт удаления ненужных библиотек
stages/pkglite/locales Скрипт удаления ненужных локализаций
systemroot Содержимое этой папки копируется без изменений поверх
корневой файловой системы Frenzy
tools/mkmenu Сборка меню fluxbox


Конфигурация
Для настройки параметров сборки служит файл config. Переменные, которые стоит изменять:

Переменная Параметр
BLOCKSIZE Размер блока для uzip-сжатия. Максимальный размер - 130560. Чем больше блок, тем выше сжатие, но в то же время на слабых компьютерах его распаковка займет несколько больше времени.
FRENZY_TYPE Может принимать значения “std” (сборка standard) или “ext” (сборка extended). От этого параметра зависит вид меню fluxbox и имя каталога, из которого будут взяты пакаджи.
FRENZY_LANG Может принимать значения “ru” (русский) или “en” (английский). Отвечает за локализацию по умолчанию, выбор пакаджей, список удаляемых локалей, перевод и вид меню.
FRENZY_ISOIMAGE Имя создаваемого ISO-образа Frenzy.
FRENZY_VOL Метка тома для ISO-образа Frenzy.
VERSION Версия системы. Это сообщение будет показано в загрузчике и после каждого входа в систему. Для того, чтобы оно уместилось на экране, сообщение должно помещаться между символами “|” линейки над надписью.


Сборочный процесс
Процесс сборки проходит в несколько стадий. Предполагается, что пакаджи с приложениями и frenzy-пакаджи уже собраны и помещены в соответствующие каталоги (см. выше).

Основной скрипт, отвечающий за сборку - frbuild.

Команда Действие
./frbuild build Выполнить этап build
./frbuild install Выполнить этап install
./frbuild frenzy Выполнить этап frenzy
./frbuild iso Выполнить этап iso
./frbuild all Выполнить все этапы


Вы можете выполнить вручную произвольный этап, войдя в папку stages и запустив соответствующий скрипт с ключом “all”.

FRENZY
Первый этап сборки, выполняется всегда. На этом этапе в зависимости от выбранного языка сборки производится подготовка списка локалей, установка языка загрузчика и генерация меню fluxbox.

build
Сборка из исходного кода ядра и системы.

world-build
Сборка системы из исходного кода. Файл конфигурации для сборки - stages/base/make.conf

kernel-build
Сборка ядра из исходного кода. Файл конфигурации ядра - stages/base/FRENZY. Этот файл создается утилитой stages/base/mkkernel из модулей в каталоге stages/base/kernel/

install
Установка собранной системы и ядра в каталог FRENZY/fs

world-install
Установка системы.

kernel-install
Установка ядра и его модулей.

frenzy
Сборка самой Frenzy - добавление пакетов, патчи и т.п.

bootloader
Сборка загрузочного образа MFS. Все необходимые для его сборки файлы находятся в каталоге stages/boot. В итоге получается файл stages/boot/frenzyroot.gz, содержащий готовый образ.

world-lite
Удаление ненужных файлов из базовой системы. Список файлов и каталогов для удаления содержится в файле stages/lite/rmfiles.

packages-install-frenzy
Установка пакаджей из каталога packages/Frenzy.

packages-install-freebsd
Установка пакаджей из каталога packages/FreeBSD.std или packages/FreeBSD.ext (в зависимости от типа сборки).

packages-lite-locales
Удаление ненужных локализаций. Скрипт удаления и список локалей находится в каталоге stages/pkglite/locales.

packages-lite-files
Удаление ненужных файлов и каталогов, а также создание нужных симлинков в зависимости от типа пакаджа. Скрипты для выполнения этих операций находятся в stages/pkglite/files.

packages-lite-lib
Удаление ненужных статических библиотек (они нужны только для сборки статических приложений, что нам не нужно). В каталоге stages/pkglite/lib находится скрипт, отвечающий за этот процесс.

system-patch
Общесистемные патчи (создание дополнительных каталогов и симлинков, патчи для конфигурационных файлов и т.п.). Файлы с патчами находятся в каталоге stages/patches.

iso
Сборка iso-образа Frenzy.

iso-prepare
Подготовка структуры каталогов на CD в каталоге FRENZY/cd. Конфигурационные файлы находятся в каталоге stages/iso.

iso-mkuzip
Создание сжатого образа корневой файловой системы. Процесс весьма длительный.

iso-build
Сборка iso-образа. Готовый образ помещается в папку ISO

Обновлено: 13.03.2015