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