| |
``Релизы'' FreeBSD могут быть построены любым человеком, имеющим быстродействующую машину и доступ к хранилищу исходных текстов. (Это должен быть любой, так как мы предоставляем анонимный доступ к CVS! Обратитесь к Руководству для прояснения деталей.) Единственнным особым требованием является наличие устройства vn(4). (В -CURRENT это устройство было заменено на новый драйвер дисков в памяти md(4).) Если устройтво в вашем ядре не подгружено, то модуль ядра должен быть подгружен автоматически при выполнении команды vnconfig(8) на этапе создания носителя для загрузки. Все инструменты, необходимые для построения релиза, доступны из хранилища CVS в каталоге src/release. Эти инструменты предоставляют единый метод построения релизов FreeBSD. Полный релиз может быть реально построен при помощи лишь одной команды, включая создание ISO-образов, подходящих для записи на CDROM, установочных дискет и установочного каталога FTP. Эта команда называется соответствующим образом, make release.
Для успешного построения релиза вы должны сначала заполнить каталог /usr/obj, запустив команду make world или просто make buildworld. Цель, выполняемая для построения релиза, требует корректного задания нескольких переменных, используемых при его сборке:
CHROOTDIR - Каталог, используемый в среде с изменённой корневой файловой системой при построении полного релиза.
BUILDNAME - Наименование строящегося релиза.
CVSROOT - Местонахождение CVS-хранилища.
RELEASETAG - Тэг CVS, соответствующий релизу, который вы собираетесь строить.
Если у вас ещё нет доступа к локальному CVS-хранилищу, то вы можете зеркалировать одно из них при помощи CVSup. Поставляемый sup-файл, /usr/share/examples/cvsup/cvs-supfile, может служить хорошей отправной точкой для зеркалирования хранилища CVS.
Если RELEASETAG опущен, то релиз будет строиться из ветки HEAD (известной как -CURRENT). Релизы, строящиеся из этой ветки обычно называют ``снэпшотами -CURRENT''.
Для настройки построения релиза существует много других переменных Большинство из этих переменных описаны в начале файла src/release/Makefile. Точная команда, служащая для построения официального релиза FreeBSD 4.7 (x86) такова:
make release CHROOTDIR=/local3/release \ BUILDNAME=4.7-RELEASE \ CVSROOT=/host/cvs/usr/home/ncvs \ RELEASETAG=RELENG_4_7_0_RELEASE
Makefile для релиза может быть разбит на несколько различных шагов.
Создание чистого системного окружения в отдельной иерархии каталогов по команде ``make installworld''.
Выгрузка из CVS чистой версии исходных текстов системы, документации и портов в иерархию для построения релиза.
Создание копии /etc и /dev в окружении с извенённым корнем файловой системы.
Смена корневой файловой системы на иерархию построения релиза, чтобы избежать влияния внешнего окружения на построение.
Выполнение make world в окружении с изменённой корневой файловой системой.
Построение бинарных файлов для работы с Kerberos.
Построение ядра GENERIC.
Создание промежуточного дерева каталогов, где будут строиться бинарные файлы и формироваться дистрибутивы.
Построение и установка инструментов для работы с документацией, необходимых для преобразования исходных текстов документации (SGML) в формат HTML и текстовые документы, которые сопутствуют релиз.
Построение и установка актуальной документации (руководства пользователей, учебники, замечания к релизу, перечень аппаратной совместимости и так далее.)
Построение ``свёрнутых'' бинарных файлов, используемых на установочных дискетах.
Подготовка дистрибутивных архивов бинарных файлов и исходных текстов.
Создание загрузочного носителя и ``fixit''-дискеты.
Создание иерархии для установки при помощи FTP.
(опционально) Создание образов ISO для носителей CDROM/DVD.
Для получения более полной информации об инфраструктуре построения релизов, пожалуйста, обратитесь к справочной странице по release(7).
XFree86™ является важным компонентом для многих пользователей настольных систем. До выхода FreeBSD 4.6-RELEASE в релизах по умолчанию использовалась XFree86 3.X. Самым простым способом построения этих версий является использование скрипта src/release/scripts/X11/build_x.sh. Он требует, чтобы на хост, выполняющий построение, уже были установлены XFree86 и Tcl/Tk. После компиляции необходимых X-серверов, скрипт преобразует все файлы в архивные, которые sysinstall(8) ожидает найти в каталоге XF86336 на установочном носителе.
Начиная с FreeBSD 4.6-RELEASE, sysinstall(8) по умолчанию устанавливает XFree86 4.X, как набор ``обычных'' пакаджей. Это могут быть как пакаджи, созданные в процессе работы кластера построения портов, так и пакаджи, построенные из соответствующим образом помеченного дерева портов.
Note: Важно, чтобы из файла /etc/make.conf были удалены все установки, специфичные для конкретного хоста. К примеру, будет глупо распространять бинарные файлы, построенные на системе с переменной CPUTYPE, указывающей на определённый тип процессора.
Коллекция портов FreeBSD
содержит более 10,000 программных пакетов сторонних разработчиков, которые доступны для
FreeBSD. За поддержку целостности дерева портов, которое может использоваться для
создания бинарных пакаджей, поставляемых с официальными релизами FreeBSD, отвечает Ports
Management Team <portmgr@FreeBSD.org>
.
Рассмотрение работ с нашей коллекцией пакетов сторонних разработчиков при подготовке релизов выходит за рамки этого документа. Этот вопрос глубоко рассмотрен в отдельной статье, The Release Engineering of Third Party Packages.
Начиная с FreeBSD 4.4, Проект FreeBSD принял решение распространять все четыре образа ISO, ранее продаваемые через BSDi/Wind River Systems/FreeBSD Mall как ``официальные'' дистрибутивы на CDROM. Каждый из четырёх дисков должен содержать файл README.TXT, описывающий содержимое диска, файл CDROM.INF, в котором находятся мета-данные о диске для того, чтобы sysinstall(8) мог проверять и использовать содержимое, а также файл filename.txt, содержащий перечень содержимого на диске. Этот перечень может быть создан простой командой:
/stage/cdrom# find . -type f | sed -e 's/^\.\///' | sort > filename.txt
Специфичные требования для каждого CD описываются ниже.
Первый диск практически полностью создаётся командой make release. Единственным изменением, которое нужно внести в каталог disc1, является добавление подкаталогов tools и XFree86, а также перенос максимально возможного количества программных пакетов сторонних разработчиков, которые поместятся на диск. Каталог tools содержит программное обеспечение, позволяющее пользователям создавать установочные дискеты из других операционных систем. Этот диск нужно сделать загрузочным, чтобы пользователям современных ПК не нужно было создавать установочные дискеты.
Если предоставляется другая версия XFree86, до должны быть обновлены утилита sysinstall(8), отражающая новое местоположение, и инструкции по установке. Соответствующий код находится в каталоге src/release/sysinstall в ветке -STABLE или в src/usr.sbin/sysinstall в ветке -CURRENT. Должны быть обновлены конкретно файлы dist.c, menus.c и config.c.
Второй диск также в основном создаётся по команде make release. Он содержит ``живую файловую систему'', которую можно использовать из sysinstall(8) для исправления процесса установки FreeBSD. Этот диск должен быть загрузочным и содержать также упакованную копию хранилища CVS в каталоге CVSROOT и демонстрационные версии коммерческого программного обеспечения в каталоге commerce.
Оставшиеся два диска содержат дополнительные программные пакеты для FreeBSD. Они должны быть объединены в группы (кластеры), чтобы отдельный пакет и все его зависимости находились на одном и том же диске. Дополнительная информация о создании этих дисков находится в статье The Release Engineering of Third Party Packages.
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите <frdp@FreeBSD.org.ua>.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |