Збирання дистрибутиву

Збирання 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.