Страница 63 из 65
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.) |