BSD undead МОЖАЙСКИЙ СЕРГЕЙ Спецвыпуск: Хакер, номер #069, стр. 069-014-5 Зато для фришников есть целых два набора сборочных скриптов - FreeSBIE и Frenzy SDK. Вот с ними мы и познакомимся более внимательно. Скрипты FreeSBIE заслуживают наивысшей похвалы. Текущая их версия, названная FreeSBIE2, написана Даниэлем Френи в рамках проекта Google Summer of Code и позволяет собирать LiveCD для архитектур i386, amd64 и powerpc. В основе этих скриптов лежат традиционные Makefile и конфигурационные файлы. Самой мощной фичей является модульная структура, позволяющая добавлять в сборочную инфраструктуру свои модули для поддержки различных дополнительных возможностей (к примеру, установки на HDD, определения оборудования и т.п.). Свежую версию скриптов FreeSBIE можно получить через CVS: cvs -d :pserver:anonymous@cvs.freesbie.org:/cvs login cvs -d :pserver:anonymous@cvs.freesbie.org:/cvs co freesbie2 Перед началом сборки запускаем команду make pkgselect для выбора пакетов, которые будут включены в создаваемый LiveCD. Пакеты выбираются из тех, что уже есть в системе. Теперь, если мы хотим что-то изменить в параметрах сборки, идем в каталог conf и копируем файл freesbie.defaults.conf в freesbie.conf, после чего меняем значения переменных уже в нем. Особенно полезен для нас параметр EXTRA, позволяющий указать список плагинов, используемых при сборке LiveCD. Сами плагины лежат в каталоге extra. Итак, мы сделали все нужные настройки, и все готово к сборке. Переходим в основной каталог скриптов и набираем: make iso Разработчики рекомендуют посмотреть кино, пока идет сборка. Занимает она несколько часов, так что советом стоит воспользоваться :-). После окончания сборки готовый исошник будет лежать в /usr/obj. В отличие от FreeSBIE, сборочные скрипты Frenzy не так универсальны, поскольку оптимизированы для построения одного-единственного дистрибутива :). Так что собрать дистр будет посложнее. Для начала нам нужно скачать сам SDK. Полный SDK занимает около гигабайта. Найти его можно на разных ftp-миррорах Frenzy, например на ftp://ftp.frenzy.org.ua/pub/Frenzy/1.0/sdk/. Создаем chroot-окружение: make buildworld make installworld DESTDIR=/usr/Frenzy Закидываем туда дерево исходных кодов (/usr/Frenzy/usr/src), дерево портов (если будем собирать какие-то дополнительные пакаджи, /usr/Frenzy/usr/ports) и сами сборочные скрипты (/usr/Frenzy/buildscripts). Теперь подредактируем файл config, находящийся в каталоге со сборочными скриптами. Для нас важны параметры FRENZY_TYPE (может принимать значения std или ext) и FRENZY_LANG (ru или en). Пакаджи нужно собрать и положить в нужные каталоги заранее. Пакаджи, собранные специально для Frenzy, скачиваем из SDK (файл Frenzy.tar) и складываем в buildscripts/packages/Frenzy. Обычные фришные пакаджи нужно сложить в buildscripts/packages/FreeBSD.std или в buildscripts/packages/FreeBSD.ext, в зависимости от выбранного типа сборки. Можно просто скачать с ftp те пакаджи, которые были собраны для имеющейся версии Frenzy, выбрать софт из них и положить нужные пакаджи в каталог. |