CVSup это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии.
CVSup использует так называемую
опрашивающую (pull) модель обновления.
Работая по этой модели, каждый клиент запрашивает обновления с
сервера, если и когда они нужны. Сервер пассивно ожидает запросы
на обновление от своих клиентов. Таким образом, все обновления
инициируются клиентами. Сервер никогда не высылает не запрошенные
обновления. Пользователь для получения обновлений должен либо запустить
CVSup клиента вручную, либо добавить
задание в cron
для настройки периодических
обновлений в автоматическом режиме.
Термин CVSup, написанный с заглавными
буквами, означает весь пакет программного обеспечения. Его основные
компоненты это клиент cvsup
, запускаемый на
каждом пользовательском компьютере, и сервер
cvsupd
, работающий на каждом зеркале
FreeBSD.
При чтении документации FreeBSD и списков рассылки вы могли
встретить указания на sup.
Sup был предшественником
CVSup, и выполнял похожие функции.
CVSup в основном используется тем же
способом, что и sup, и, фактически, использует файлы настройки,
обратно совместимые с файлами sup
.
Sup более не используется проектом
FreeBSD, поскольку CVSup и быстрее и
более гибок.
Простейший способ установки CVSup
это использование прекомпилированного пакета net/cvsup
из коллекции
пакетов FreeBSD. Если вы предпочтете собрать
CVSup из исходных текстов, можете
использовать вместо этого порт net/cvsup
. Но имейте ввиду:
порт net/cvsup
зависит от системы
Modula-3, которой потребуется существенный объем времени и
пространства на диске для загрузки и установки.
Если вы собираетесь использовать
CVSup на компьютере, где нет
установленного XFree86™
или Xorg,
например на сервере, используйте порт, не включающий
CVSup GUI,
net/cvsup-without-gui
.
Работа CVSup контролируется
файлом настройки, называемым supfile
.
В каталоге /usr/share/examples/cvsup/
находится несколько примеров supfile
.
Информация в supfile
отвечает на
следующие вопросы CVSup:
В следующих разделах мы составим типичный
supfile
последовательным ответом на каждый из этих
вопросов. Сначала опишем общую структуру
supfile
.
supfile
это текстовый файл. Комментарии,
начинающиеся с #
, продолжаются до конца строки.
Пустые строки и строки, содержащие только комментарии,
игнорируются.
Каждая из оставшихся строк описывает набор файлов, получаемых
пользователем. Строка начинается с имени «коллекции»,
логического объединения файлов, определяемых сервером. Имя коллекции
говорит серверу о том, какие файлы вам нужны. После имени коллекции
следуют одно или больше полей, разделенных пробелом. Эти поля
отвечают на вопросы, заданные выше. Есть два типа полей: флаги и
значения. Поле флага состоит из одного ключевого слова, например
delete
или compress
.
Поле значения также начинается с ключевого слова, но за ним без
пробела следует =
и второе слово. Например,
release=cvs
это поле значения.
supfile
обычно задает получение
более одной коллекции. Одним из способов построения
supfile
является указание всех соответствующих
полей для каждой коллекции явно. Однако, это приводит к появлению
слишком длинных строк в supfile
и это неудобно,
поскольку большинство полей одинаковы для всех коллекций
supfile
. CVSup
предоставляет механизм задания значений по умолчанию для устранения
этих проблем. Строки, начинающиеся со специального имени
псевдо-коллекции *default
, могут быть использованы
для установки флагов и значений, которые послужат значениями по
умолчанию для всех последующих коллекций supfile
.
Значение по умолчанию может быть перезаписано для каждой
отдельной коллекции путем указания другого значения в ее собственных
параметрах. Значения по умолчанию также могут быть изменены
или расширены в любом месте supfile
дополнительными строками *default
.
Получив эту информацию, мы начнем строить
supfile
для получения и обновления главного
дерева исходных текстов FreeBSD-CURRENT.
Какие файлы вы хотите получить?
Файлы, доступные через CVSup,
организованы в именованные группы, называемые
«коллекциями». Доступные коллекции описаны
в следующем разделе.
В этом примере мы получим все дерево исходных текстов системы
FreeBSD. Существует одиночная большая коллекция
src-all
, которая позволит нам сделать это.
В качестве первого шага по созданию supfile
,
добавим список коллекций, по одной на строку (в нашем случае,
только одну строку):
С CVSup вы в принципе можете
получить любую версию исходных текстов, которая когда-либо
существовала. Это возможно, поскольку
cvsupd сервер работает непосредственно
с репозиторием CVS, который содержит все версии. Вы указываете
ту, которая вам нужна, с помощью полей tag=
и date=
.
Будьте очень осторожны при задании любых полей
tag=
. Некоторые теги существуют только
в определенных коллекциях файлов. Если вы укажете
некорректный тег или ошибетесь в его написании,
CVSup удалит файлы, которые вы
возможно не хотели удалять. В частности, используйте
только tag=.
для коллекций ports-*
.
Поля tag=
означают символьные имена
в репозитории. Существует два вида тегов, теги ревизий и теги
ветвей. Теги ревизий означают определенную ревизию. Они
не меняются со временем. Теги ветвей, с другой стороны,
означают последнюю ревизию заданной линии разработки в любой
момент времени. Поскольку тег ветви не относится к определенной
ревизии, он может означать завтра что-то иное чем сегодня.
Раздел A.7, «Теги CVS» содержит теги ветвей, которые
могут быть интересны пользователям. Тег, указанный в
файле настройки CVSup, должен
предваряться строкой tag=
(RELENG_4
превратится в
tag=RELENG_4
). Помните, что для коллекции
портов подходит только tag=.
.
Будьте очень осторожны при наборе имен тегов. CVSup не может отличить правильные и неправильные теги. Если вы неправильно наберете тег, CVSup поведет себя так, как если бы вы указали тег, не содержащий файлов. В этом случае он удалит существующие исходные тексты.
При указании тега ветви вы получите последние версии файлов
этой ветви разработки. Если вы хотите получить какую-то из
предыдущих версий, сделайте это указав дату в поле значения
date=
. Страница справочника cvsup(1)
описывает как сделать это.
В нашем примере мы хотим получить FreeBSD-CURRENT. Мы
добавим эту строку в начало
supfile
:
Существует важный специальный случай, когда не задаются
ни поле tag=
, ни поле date=
.
В этом случае вы получите последние версии RCS файлов
непосредственно из CVS репозитория сервера вместо получения
определенной версии. Разработчики обычно предпочитают этот
способ. Поддерживая копию репозитория в своей системе, они
получают возможность просмотра истории ревизий и проверки
последних версий файлов. Однако это достигается ценой
большего занимаемого дискового пространства.
Мы используем поле host=
для сообщения
cvsup
откуда забирать обновления. Подойдет
любое из CVSup зеркал,
хотя вы должны попробовать выбрать ближайшее к вам зеркало.
В этом примере мы используем не существующий сервер,
cvsup99.FreeBSD.org
:
Вам потребуется подставить адрес одного из существующих хостов
перед запуском CVSup. При каждом
запуске cvsup
, вы можете перезаписать
настройку хоста из командной строки, используя параметр -h
.hostname
Где вы хотите разместить их на своем компьютере?
Поле prefix=
указывает
cvsup
где размещать получаемые файлы.
В этом примере, мы поместим файлы непосредственно в главное
дерево исходных текстов, /usr/src
.
Каталог src
уже подразумевается в
коллекциях, которые мы собираемся получить, поэтому
корректное указание таково:
Где вы хотите
разместить файлы статуса cvsup
?
Клиент CVSup поддерживает
определенные файлы статуса в так называемом
«base» каталоге. Эти файлы помогают
CVSup работать более эффективно
путем поддержки истории уже полученных обновлений. Мы будем
использовать стандартный каталог base,
/var/db
:
Если base каталог не существует, теперь подходящий момент
для его создания. Клиент cvsup
не
запустится, если base каталог не существует.
Различные настройки supfile
:
Существует еще одна строка, которая обычно должна
присутствовать в supfile
:
release=cvs
означает, что сервер должен
получать информацию из главного репозитория FreeBSD CVS.
Это обычно всегда так, но существуют несколько иных вариантов,
изложение которых выходит за пределы этой главы.
delete
дает
CVSup возможность удалять файлы.
Вы должны всегда указывать этот параметр, чтобы
CVSup мог поддерживать дерево
исходных текстов полностью актуальным.
CVSup удалит только те файлы, за
которые отвечает. Все другие файлы останутся
нетронутыми.
use-rel-suffix
это ... мистика. Если
вы действительно хотите узнать о нем, обратитесь к странице
справочника cvsup(1). Иначе просто укажите это поле и не
беспокойтесь о нем больше.
compress
включает использование
gzip сжатия при передаче данных. Если ваше сетевое подключение
работает со скоростью T1 или быстрее, вам возможно не
потребуется использование сжатия. Иначе оно обычно
помогает.
Все это вместе:
Вот полный supfile
для нашего
примера:
Как упомянуто выше, CVSup использует
метод опроса. В основном это означает, что
вы подключаетесь к CVSup серверу, и он
говорит «Вот то, что вы можете загрузить с меня...»,
и клиент отвечает «OK, я возьму это, это и это.»
С настройкой по умолчанию CVSup клиент
заберет каждый файл, связанный с коллекцией и тегом, выбранным
в файле настройки. Однако, это не всегда то, что вам нужно,
особенно если вы синхронизируете деревья doc
,
ports
, или www
—
большинство людей не могут читать на пяти или четырех языках,
и следовательно им не требуются локализованные файлы. Если вы
обновляете коллекцию портов, это можно обойти путем индивидуального
указания каждой коллекции (например,
ports-astrology,
ports-biology и т.д. вместо
коллекции ports-all). Однако, поскольку для
деревьев doc
и www
нет
специфичных для языка коллекций, используйте одну из
замечательных возможностей CVSup:
файл refuse
.
Файл refuse
говорит
CVSup, что он не должен забирать каждый
файл из коллекции; другими словами, он говорит клиенту
отказаться (refuse) от получения с сервера
определенных файлов. Файл refuse
можно найти
(или, если у вас его еще нет, должен быть помещен) в
.
base
/sup/base
определен в файле
supfile
; наше стандартное расположение
base
это
/var/db
, что означает, что по
умолчанию файл refuse
это
/var/db/sup/refuse
.
Формат файла refuse
очень прост; он содержит
имена файлов или каталогов, которые вы не хотите загружать.
Например, если вы не можете разговаривать ни на каком языке кроме
английского и русского, и вы не будете читать документацию на этих
языках, поместите следующие строки в файл
refuse
:
и так далее для других языков (полный список находится на странице FreeBSD CVS репозитория).
С этой очень полезной возможностью пользователи с
низкоскоростным подключением или с поминутной платой за подключение
смогут сохранить время, поскольку им более не потребуется загружать
файлы, которые они никогда не будут использовать. За более
подробной информацией о файлах refuse
и
замечательных возможностях CVSup,
обратитесь к его справочной странице.
Теперь вы готовы к тестированию обновления. Командная строка для этого очень проста:
#
cvsup supfile
где
это конечно имя supfile
supfile
, который только что
был создан. При запуске под X11, cvsup
отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите
кнопку и смотрите за его работой.
Поскольку в этом примере обновляется существующее дерево
/usr/src
вам потребуется, запуск программы
из под root
, чтобы у cvsup
были права, необходимые для обновления файлов. Если файл настройки
только что создан, и эта программа раньше никогда не использовалась,
это может действовать вам на нервы. Есть простой способ для
пробного запуска без затрагивания ваших драгоценных файлов.
Просто создайте где-нибудь пустой каталог и поместите его в качестве
дополнительного аргумента командной строки:
#
mkdir /var/tmp/dest
#
cvsup supfile /var/tmp/dest
Указанный каталог будет использоваться в качестве места назначения
всех обновлений. CVSup
будет работать с файлами из /usr/src
,
но не станет изменять или удалять их. Вместо этого все обновления
файлов будут помещены в /var/tmp/dest/usr/src
.
При запуске таким способом CVSup оставит
также неприкосновенным каталог base. Новые версии этих файлов будут
записаны в указанный каталог. Если у вас есть права на чтение
каталога /usr/src
, вам даже не потребуется
работать под root
для выполнения пробного
обновления.
Если вы не работаете с X11 или просто не любите GUI, добавьте
набор параметров командной строки при запуске
cvsup
:
#
cvsup -g -L 2 supfile
Параметр -g
указывает
CVSup не использовать GUI. Он действует
автоматически, если вы не работаете под X11, но иначе вам потребуется
его указать.
Параметр -L 2
указывает
CVSup выводить информацию о каждом
производимом обновлении. Есть три уровня протоколирования,
от -L 0
до -L 2
. Уровень
по умолчанию 0, что означает полное отсутствие сообщений,
за исключением сообщений об ошибках.
Доступно множество других параметров. Для получения их краткого
списка, наберите cvsup -H
. За более подробным
описанием обратитесь к странице справочника.
После проверки работоспособности обновлений вы можете организовать регулярные запуски CVSup с помощью cron(8). Очевидно, вы не должны позволять CVSup использовать GUI при запуске из cron(8).
Коллекции файлов, доступные через CVSup, организованы иерархически. Существует несколько больших коллекций, и они разделены на несколько меньших под-коллекций. Получение большой коллекции эквивалентно получению каждой из ее подколлекции. Иерархические отношения между коллекциями отражаются путем использования отступов в списке ниже.
Наиболее используемые коллекции это
src-all
, и
ports-all
. Другие коллекции используются
небольшими группами людей для специальных целей и
некоторые сайты зеркал могут не содержать их все.
cvs-all release=cvs
Главный FreeBSD CVS репозиторий, включающий криптографический код.
distrib release=cvs
Файлы, относящиеся к распространению и зеркалированию FreeBSD.
doc-all release=cvs
Исходные тексты Руководства FreeBSD и другой документации. Они не включают файлы веб-сайта FreeBSD.
ports-all release=cvs
Коллекция портов FreeBSD.
Если вы не хотите обновлять всю коллекцию
ports-all
(все дерево портов),
а только одну из подколлекций, перечисленных ниже,
убедитесь, что вы каждый раз
обновляете подколлекцию ports-base
!
При любых изменениях в инфраструктуре сборки портов
подколлекции ports-base
, они могут
быть использованы «настоящими» портами
довольно скоро. Таким образом, если вы обновляете
только «настоящие» порты и они используют
некоторые новые возможности, есть большой шанс того,
что их сборка прервется с непонятным сообщением об
ошибке. Самое первое, что вы
должны сделать, это убедиться, что подколлекция
ports-base
обновлена.
Если вы намерены построить собственный вариант
файла ports/INDEX
, вы
должны обновить коллекцию
ports-all
(полное дерево портов).
Построение файла ports/INDEX
с
частью дерева не поддерживается, хотя и возможно.
См. также
FAQ.
ports-accessibility
release=cvs
ПО для поддержки пользователей с нарушениями зрения, слуха и т.п.
ports-arabic
release=cvs
Поддержка арабского языка.
ports-archivers
release=cvs
Архиваторы.
ports-astro
release=cvs
Порты для астрономии.
ports-audio
release=cvs
Поддержка звука.
ports-base
release=cvs
Инфраструктура сборки портов -
различные файлы, расположенные в подкаталогах
Mk/
и
Tools/
каталога
/usr/ports
.
Пожалуйста, прочтите важное предупреждение выше: вы должны всегда обновлять эту подколлекцию, при каждом обновлении любой части коллекции портов FreeBSD!
ports-benchmarks
release=cvs
Измерение производительности.
ports-biology
release=cvs
Программы для биологии.
ports-cad
release=cvs
Инструменты САПР.
ports-chinese
release=cvs
Поддержка китайского языка.
ports-comms
release=cvs
Коммуникационные программы.
ports-converters
release=cvs
Преобразование кодировок.
ports-databases
release=cvs
Базы данных.
ports-deskutils
release=cvs
Вещи, использовавшиеся на рабочем столе до изобретения компьютеров.
ports-devel
release=cvs
Утилиты разработки.
ports-dns
release=cvs
Программы, имеющие отношение к DNS.
ports-editors
release=cvs
Редакторы.
ports-emulators
release=cvs
Эмуляторы других операционных систем.
ports-finance
release=cvs
Финансовые, расчетные и связанные с ними приложения.
ports-ftp
release=cvs
Клиентские и серверные утилиты FTP.
ports-games
release=cvs
Игры.
ports-german
release=cvs
Поддержка немецкого языка.
ports-graphics
release=cvs
Графические утилиты.
ports-hebrew
release=cvs
Поддержка иврита.
ports-hungarian
release=cvs
Поддержка венгерского языка.
ports-irc
release=cvs
IRC утилиты.
ports-japanese
release=cvs
Поддержка японского языка.
ports-java
release=cvs
Java™ утилиты.
ports-korean
release=cvs
Поддержка корейского языка.
ports-lang
release=cvs
Языки программирования.
ports-mail
release=cvs
Почтовое программное обеспечение.
ports-math
release=cvs
Математические программы.
ports-mbone
release=cvs
Приложения MBone.
ports-misc
release=cvs
Различные утилиты.
ports-multimedia
release=cvs
Мультимедийное программное обеспечение.
ports-net
release=cvs
Сетевое программное обеспечение.
ports-net-im
release=cvs
Программы обмена быстрыми сообщениями.
ports-net-mgmt
release=cvs
ПО для сетевого управления.
ports-net-p2p
release=cvs
Сети клиентского обмена (peer-to-peer).
ports-news
release=cvs
Программное обеспечение новостей USENET.
ports-palm
release=cvs
Программная поддержка для Palm™.
ports-polish
release=cvs
Поддержка польского языка.
ports-portuguese
release=cvs
Поддержка португальского языка.
ports-print
release=cvs
Программы печати.
ports-russian
release=cvs
Поддержка русского языка.
ports-science
release=cvs
Научное программное обеспечение.
ports-security
release=cvs
Утилиты безопасности.
ports-shells
release=cvs
Оболочки командной строки.
ports-sysutils
release=cvs
Системные утилиты.
ports-textproc
release=cvs
Утилиты обработки текста (не включают настольные утилиты публикации).
ports-ukrainian
release=cvs
Поддержка украинского языка.
ports-vietnamese
release=cvs
Поддержка вьетнамского языка.
ports-www
release=cvs
Программы, относящиеся к World Wide Web.
ports-x11
release=cvs
Порты с поддержкой X window system.
ports-x11-clocks
release=cvs
Часы X11.
ports-x11-fm
release=cvs
Файловые менеджеры X11.
ports-x11-fonts
release=cvs
Шрифты и шрифтовые утилиты X11.
ports-x11-toolkits
release=cvs
Пакеты разработки приложений для X11.
ports-x11-servers
release=cvs
Серверы X11.
ports-x11-themes
release=cvs
Темы X11.
ports-x11-wm
release=cvs
Оконные менеджеры X11.
projects-all release=cvs
Исходные тексты дополнительных проектов FreeBSD.
src-all release=cvs
Основные исходные тексты FreeBSD, включая криптографический код.
src-base
release=cvs
Различные файлы непосредственно из
/usr/src
.
src-bin
release=cvs
Утилиты, которые могут
потребоваться в однопользовательском режиме
(/usr/src/bin
).
src-contrib
release=cvs
Утилиты и библиотеки, заимствованные проектом
FreeBSD, используются почти без модификаций
(/usr/src/contrib
).
src-crypto release=cvs
Криптографические утилиты и библиотеки,
заимствованные проектом FreeBSD, используются
почти без модификаций
(/usr/src/crypto
).
src-eBones release=cvs
Kerberos и DES
(/usr/src/eBones
). Не
используются в текущих релизах FreeBSD.
src-etc
release=cvs
Файлы настройки системы
(/usr/src/etc
).
src-games
release=cvs
Игры
(/usr/src/games
).
src-gnu
release=cvs
Утилиты, попадающие под GNU Public
License (/usr/src/gnu
).
src-include
release=cvs
Файлы заголовков
(/usr/src/include
).
src-kerberos5
release=cvs
Пакет безопасности Kerberos5
(/usr/src/kerberos5
).
src-kerberosIV
release=cvs
Пакет безопасности KerberosIV
(/usr/src/kerberosIV
).
src-lib
release=cvs
Библиотеки
(/usr/src/lib
).
src-libexec
release=cvs
Системные программы, обычно выполняемые
другими программами
(/usr/src/libexec
).
src-release
release=cvs
Файлы, необходимые для производства релизов
FreeBSD
(/usr/src/release
).
src-sbin release=cvs
Системные утилиты для однопользовательского
режима
(/usr/src/sbin
).
src-secure
release=cvs
Криптографические библиотеки и команды
(/usr/src/secure
).
src-share
release=cvs
Файлы, которые могут быть использованы
несколькими системами
(/usr/src/share
).
src-sys
release=cvs
Ядро
(/usr/src/sys
).
src-sys-crypto
release=cvs
Криптографический код ядра
(/usr/src/sys/crypto
).
src-tools
release=cvs
Различные инструменты для поддержки FreeBSD
(/usr/src/tools
).
src-usrbin
release=cvs
Пользовательские утилиты
(/usr/src/usr.bin
).
src-usrsbin
release=cvs
Системные утилиты
(/usr/src/usr.sbin
).
www release=cvs
Исходные тексты www сайта FreeBSD.
distrib release=self
Собственные файлы настройки сервера CVSup. Используются зеркалами CVSup.
gnats release=current
База данных отслеживания ошибок GNATS.
mail-archive release=current
Архив списков рассылки FreeBSD.
www release=current
Файлы предобработки WWW сайта FreeBSD (не исходные файлы). Используются зеркалами WWW.
CVSup FAQ и другая информация о CVSup находится на Домашней странице CVSup.
Большая часть связанных с FreeBSD обсуждений CVSup проводилась в списке рассылки freebsd-hackers. Новые версии программного обеспечения анонсируются здесь и в списке рассылки freebsd-announce.
Вопросы и сообщения об ошибках адресуйте автору программы
<cvsup-bugs@polstra.com>
.
CVSup серверы для FreeBSD работают на следующих сайтах:
cvsup.FreeBSD.org
cvsup1.FreeBSD.org
cvsup3.FreeBSD.org
cvsup4.FreeBSD.org
cvsup5.FreeBSD.org
cvsup6.FreeBSD.org
cvsup7.FreeBSD.org
cvsup9.FreeBSD.org
cvsup10.FreeBSD.org
cvsup11.FreeBSD.org
cvsup12.FreeBSD.org
cvsup14.FreeBSD.org
cvsup15.FreeBSD.org
cvsup18.FreeBSD.org
cvsup1.am.FreeBSD.org
cvsup.au.FreeBSD.org
cvsup2.br.FreeBSD.org
cvsup.de.FreeBSD.org
cvsup2.de.FreeBSD.org
cvsup4.de.FreeBSD.org
cvsup5.de.FreeBSD.org
cvsup.dk.FreeBSD.org
cvsup.ie.FreeBSD.org
cvsup2.ie.FreeBSD.org
cvsup.es.FreeBSD.org
cvsup2.es.FreeBSD.org
cvsup3.es.FreeBSD.org
cvsup.it.FreeBSD.org
cvsup.kr.FreeBSD.org
cvsup.lv.FreeBSD.org
cvsup.lt.FreeBSD.org
cvsup.nl.FreeBSD.org
cvsup2.nl.FreeBSD.org
cvsup3.nl.FreeBSD.org
cvsup.no.FreeBSD.org
cvsup.pl.FreeBSD.org
cvsup3.ru.FreeBSD.org
cvsup5.ru.FreeBSD.org
cvsup6.ru.FreeBSD.org
cvsup.sk.FreeBSD.org
cvsup.si.FreeBSD.org
cvsup1.us.FreeBSD.org
cvsup3.us.FreeBSD.org
cvsup4.us.FreeBSD.org
cvsup5.us.FreeBSD.org
cvsup7.us.FreeBSD.org
cvsup9.us.FreeBSD.org
cvsup11.us.FreeBSD.org
cvsup12.us.FreeBSD.org
cvsup13.us.FreeBSD.org
cvsup14.us.FreeBSD.org
cvsup15.us.FreeBSD.org
cvsup18.us.FreeBSD.org
cvsup.tw.FreeBSD.org
cvsup3.tw.FreeBSD.org
cvsup6.tw.FreeBSD.org
cvsup10.tw.FreeBSD.org
cvsup11.tw.FreeBSD.org
cvsup12.tw.FreeBSD.org
cvsup13.tw.FreeBSD.org
cvsup5.ua.FreeBSD.org
cvsup6.ua.FreeBSD.org
cvsup.fi.FreeBSD.org
cvsup3.fr.FreeBSD.org
cvsup5.fr.FreeBSD.org
cvsup8.fr.FreeBSD.org
cvsup.cz.FreeBSD.org
cvsup.ch.FreeBSD.org
cvsup.se.FreeBSD.org
cvsup2.se.FreeBSD.org
cvsup.ee.FreeBSD.org
cvsup.za.FreeBSD.org
cvsup.jp.FreeBSD.org
cvsup2.jp.FreeBSD.org
cvsup3.jp.FreeBSD.org
cvsup4.jp.FreeBSD.org
cvsup5.jp.FreeBSD.org
cvsup6.jp.FreeBSD.org
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.