====== Збирання дистрибутиву ====== Збирання 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.