Сборка 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”.
Первый этап сборки, выполняется всегда. На этом этапе в зависимости от выбранного языка сборки производится подготовка списка локалей, установка языка загрузчика и генерация меню fluxbox.
Сборка из исходного кода ядра и системы.
Сборка системы из исходного кода. Файл конфигурации для сборки - stages/base/make.conf
Сборка ядра из исходного кода. Файл конфигурации ядра - stages/base/FRENZY
. Этот файл создается утилитой stages/base/mkkernel
из модулей в каталоге stages/base/kernel/
Установка собранной системы и ядра в каталог FRENZY/fs
Установка системы.
Установка ядра и его модулей.
Сборка самой Frenzy - добавление пакетов, патчи и т.п.
Сборка загрузочного образа MFS. Все необходимые для его сборки файлы находятся в каталоге stages/boot
.
В итоге получается файл stages/boot/frenzyroot.gz
, содержащий готовый образ.
Удаление ненужных файлов из базовой системы. Список файлов и каталогов для удаления содержится в файле stages/lite/rmfiles
.
Установка пакаджей из каталога packages/Frenzy
.
Установка пакаджей из каталога packages/FreeBSD.std
или packages/FreeBSD.ext
(в зависимости от типа сборки).
Удаление ненужных локализаций. Скрипт удаления и список локалей находится в каталоге stages/pkglite/locales
.
Удаление ненужных файлов и каталогов, а также создание нужных симлинков в зависимости от типа пакаджа. Скрипты для выполнения этих операций находятся в stages/pkglite/files
.
Удаление ненужных статических библиотек (они нужны только для сборки статических приложений, что нам не нужно). В каталоге stages/pkglite/lib
находится скрипт, отвечающий за этот процесс.
Общесистемные патчи (создание дополнительных каталогов и симлинков, патчи для конфигурационных файлов и т.п.). Файлы с патчами находятся в каталоге stages/patches
.
Сборка iso-образа Frenzy.
Подготовка структуры каталогов на CD в каталоге FRENZY/cd
. Конфигурационные файлы находятся в каталоге stages/iso
.
Создание сжатого образа корневой файловой системы. Процесс весьма длительный.
Сборка iso-образа. Готовый образ помещается в папку ISO.