FAQ FreeBSD
Страница 63. Дистрибутивы FreeBSD


13. Дистрибутивы FreeBSD 

13.1. Что такое SNAP и RELEASE?

В Репозитории CVS сейчас находятся три активно/полуактивно развивающихся ветки
FreeBSD (ветвь RELENG_2 меняется от силы пару раз в год, вот почему в
разработке только три активных ветки):
  * RELENG_2_2 AKA 2.2-STABLE
  * RELENG_3 AKA 3.X-STABLE
  * RELENG_4 AKA 4-STABLE
  * HEAD AKA -CURRENT AKA 5.0-CURRENT
HEAD - это не реальный тэг ветки, как другие два; это просто символьная
константа для обозначения "текущего, не ветвящегося, находящегося в разработке
дерева", то есть "-CURRENT".
На данный момент "-CURRENT" является находящимся в разработке деревом 5.0, в
етка 4-STABLE, RELENG_4, отделилась от "-CURRENT" в марте 2000 года.
Ветвь 2.2-STABLE, RELENG_2_2, отделилась от -CURRENT в ноябре 1996 и развитие
этой ветви было полностью прекращено.

13.2. Как самим сделать релиз?

Чтобы сделать релиз, вам нужно иметь три вещи: Во-первых, вам нужно работать с
ядром, включающим драйвер vn. Добавьте его в файл конфигурации ядра и
откомпилируйте новое ядро:
    pseudo-device vn         #Vnode driver (turns a file into a device)

Во-вторых, вам нужно иметь на диске полное дерево CVS. Чтобы добиться этого, вы
можете использовать CVSUP, указав в файле supfile в качестве имени релиза cvs и
удалив все поля с тегами и датами:
    *default prefix=/home/ncvs
    *default base=/a
    *default host=cvsup.FreeBSD.org
    *default release=cvs
    *default delete compress use-rel-suffix
    ## Main Source Tree
    src-all
    src-eBones
    src-secure
    # Other stuff
    ports-all
    www
    doc-all

После этого запустите cvsup -g supfile для выкачки всех нужных исходных текстов
на ваш компьютер...
Наконец, вам нужно свободное место для построения системы. Допустим, что св
ободное место есть в каталоге /some/big/filesystem и, как в примере выше, вы
поместили дерево CVS в каталог /home/ncvs:
    # setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs
    # cd /usr/src
    # make buildworld
    # cd /usr/src/release
    # make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release

        Note: Пожалуйста, отметьте, что вам не нужно выполнять процедуру
        построения системы полностью, если у вас уже есть заполненный /usr/obj.
Полный релиз будет строиться в каталоге /some/big/filesystem/release и по
окончании этого процесса дистрибутив, готовый к помещению на FTP-сервер, будет
находиться в каталоге /some/big/filesystem/release/R/ftp. Если вы захотите
построить SNAP другой ветки, не -CURRENT, то можете указать RELEASETAG=SOMETAG
в командной строке make release выше, например, при указании RELEASETAG=
RELENG_2_2, будет строиться самый свежий снэпшот ветки 2.2-STABLE.

13.3. Как создать инсталляционные диски?

Весь процесс создания инсталляционных дисков и дистрибутивов исходных текстов и
бинарников автоматизирован в файле /usr/src/release/Makefile. Информации, в нём
содержащейся, должно быть достаточно, чтобы начать. Однако, должны вас
предупредить, что этот процесс включает в себя выполнение make world и поэтому
занимает много времени и дискового пространства.
13.4. По команде make world были переустановлены все программы.
Да, так и должно быть; как говорит название этой команды, make world выполняет
построение всех системных файлов с нуля, так что в итоге можете быть уверены,
что получите чистую рабочую систему (вот почему это занимает столько времени).
Если в момент запуска команд make world или make install определена переменная
окружения DESTDIR, то вновь создаваемые файлы будут помещены в дерево каталого
в. идентичное существующему, с корнем, располагающимся в ${DESTDIR}. Однако
некоторые случайные комбинации модификаций совместно используемых библиотек и в
ерсий компилируемых программ при исполнении команды make world, может этому
помешать.

13.5. При загрузке системы выдаётся сообщение "(bus speed defaulted)".

Адаптеры SCSI Adaptec 1542 позволяют программно изменять скорость доступа к
шине. Предыдущие версии драйвера 1542 пытались определить максимально возможную
скорость работы и установить это значение. Мы обнаружили, что у некоторых
пользователей это приводило к нарушению работоспособности системы, поэтому эта
возможность сейчас вынесена в параметр конфигурации ядра TUNE_1542. Использов
ание этой опции на тех системах, где она работает, может привести к ускорению
доступа к дискам, а там, где это не работает, может привести к потере данных.

13.6. Можно ли работать с current при ограниченном доступе в Internet?

Да, это можно делать без скачивания полного дерева исходных текстов с помощью
системы CTM.

13.7. Как вы разделяете дистрибутив на файлы по 240К?

Команда split в современных BSD-системах имеет опцию -b, позволяющую разрезать
файлы на части с точностью до байта.
Вот пример из файла /usr/src/Makefile.
    bin-tarball:
    (cd ${DISTDIR}; \
    tar cf - . \
    gzip --no-name -9 -c | \
    split -b 240640 - \
    ${RELEASEDIR}/tarballs/bindist/bin_tgz.)

 
« Предыдущая статья