====== Сборка дистрибутива ====== Сборка 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.