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