Как собрать NetBSD-current

rmx аватар

Благодаря системе автоматической сборки , в NetBSD, вы можете легко собрать новый релиз из текущих CVS исходников. Я покажу вам шаг за шагом, как собрать загрузочный, установочный CD-ROM для платформы i386. Вы должны иметь рабочую NetBSD систему и подкючение к интернету.

Содержание этого howto.

Требования к пространству диска.
Получение исходников из CVS репозитария.
Сборка рабочего инструментария.
Сборка релиза.
Создание ISO образа.
Запись образа.
Дополнительная информация.

Требования к дисковому пространству.

Вам потребуется минимум 5.1 Gb дискового пространства для сборки полного релиза. Временно, вам необходимо 1.6 Gb для исходников src и xsrc. Также 2.4 Gb объектных файлов будут перемещены в директорию obj после сборки релиза.

Получение исходников из CVS репозитария.

Создайте поддиректории src, xsrc и objdir, как пользователь root, в директории /usr

# cd /usr
# mkdir src xsrc objdir

Также, мы создадим следующие поддиректории в /usr: tooldir, releasedir, destdir потому что мы хотим иметь чистую сборку и выделить эти директории из директории src, в которой обычно собираются релизы.

# mkdir tooldir releasedir destdir

Сменим владельца этих директорий:

# chown jens src/ xsrc/ objdir/ tooldir/ releasedir/ destdir/

Следущие шаги могут быть выполнены обычным пользователем:

# logout
$

Устанавливаем переменные среды CVSROOT: (Для этого, пожалуйста, выберете зеркало ближайшее к вам)

В случае если вы пользуетесь csh:

% setenv CVSROOT anoncvs@anoncvs3.de.NetBSD.org:/cvsroot

Если же вы пользуетесь Борн совместимыми оболочками (sh, ksh, zsh, bash...):

$ export CVSROOT=anoncvs@anoncvs3.de.NetBSD.org:/cvsroot

Устанавливаем переменную окружения CVS_RSH:

$ export CVS_RSH=ssh

Для src директории необходимо 1500 Mb дискового пространства и 579 MB для директории xsrc.

Теперь проверим исходники current ветки.

$ cvs checkout -PA src
$ cvs checkout -PA xsrc

Или вы можете проверить конкретный релиз

$ cvs checkout -rnetbsd-3-0 -PA src
$ cvs checkout -rnetbsd-3-0 -PA xsrc

Построение рабочего инструментария.

Инструментарий содержит программное обеспечение которое необходимо для сборки NetBSD, такой как GNU C-компилятор и другие средства. Это дает нам уверенность в том, что NetBSD может быть построена на большинстве Unix™ систем. Вы можете опустить этот шаг, если вы хотите построить новый релиз, потому что релиз всегда включает средства для сборки.

$ cd /usr/src
$ ./build.sh -T ../tooldir -D ../destdir -R ../releasedir -O ../objdir -U tools
build.sh started: Sat Jan 22 21:34:56 CET 2005
No /usr/tools/bin/nbmake, needs building.
Bootstrapping nbmake
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/tooldir
DESTDIR path: /usr/destdir
RELEASEDIR path: /usr/releasedir
Created /usr/tools/bin/nbmake
makewrapper: /usr/tools/bin/nbmake-i386
Updated /usr/src/obj/tooldir/bin/nbmake-i386
Tools built to /usr/src/obj/tooldir
build.sh started: Sat Jan 22 21:34:56 CET 2005
build.sh ended: Sat Jan 22 21:41:26 CET 2005

Сборка релиза

Аргументы обрабатываемые скриптом build.sh могут буть найдены в файле src/share/mk/bsd.README.

В этом примере:
Мы собираем релиз, как обычный пользователь (не root): -U
Мы собираем исходники X11R6 (Xservers): -x
Мы используем раздельные директории: -T, -D, -R, -O, -X
Мы перемещаем содержимое директорий tooldir и destdir до сборки: -r
Мы собираем релиз: release

$ ./build.sh -T ../tooldir -D ../destdir -R ../releasedir -O ../objdir -X ../xsrc -U -x -r release

Сам процесс занимает как минимум два часа на сервере класса high-end, а обычно намного больше, в зависимости от вычислительной мощности вашего компьютера.

build.sh started: Sat Jan 22 21:50:47 CET 2005
No nonexistent/bin/nbmake, needs building.
Bootstrapping nbmake
MACHINE: i386
MACHINE_ARCH: i386
TOOLDIR path: /usr/src/tooldir
DESTDIR path: /usr/src/destdir
RELEASEDIR path: /usr/src/releasedir
Created /usr/src/tooldir/bin/nbmake
makewrapper: /usr/src/tooldir/bin/nbmake-i386
Updated /usr/src/tooldir/bin/nbmake-i386
Successful make release
build.sh started: Sat Jan 22 21:50:47 CET 2005
build.sh ended: Sun Jan 23 01:20:43 CET 2005

Если сборка завершится неудачно, в связи с нехваткой места на установочных дискетах, вам будет полезно прочесть: Сборка установочных наборов, когда вы не можете собрать установочные дискеты.

Создание ISO-образа

Для создания ISO-образа только добавьте соответствующую опцию iso-image

$ ./build.sh -U -x -r release iso-image

Результирующий ISO-образа будет создан в директории relasedir/platform/installation/cdrom/

При помощи этой опции будет создан ISO-образ только на платформах которые могут загружаться с этого типа носителя .

Прожиг образа

# cdrecord -dev=/dev/rcd0d -data -pad -v NetBSD-install.iso

Дополнительная информация

cvs(1) manpage

Автор Zafer
Перевод rmx