A.5. Использование CVSup
Пред. | Приложение A. Получение FreeBSD | След.

## A.5. Использование CVSup

### A.5.1. Введение

CVSup это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии.

CVSup использует так называемую опрашивающую (pull) модель обновления. Работая по этой модели, каждый клиент запрашивает обновления с сервера, если и когда они нужны. Сервер пассивно ожидает запросы на обновление от своих клиентов. Таким образом, все обновления инициируются клиентами. Сервер никогда не высылает не запрошенные обновления. Пользователь для получения обновлений должен либо запустить CVSup клиента вручную, либо добавить задание в `cron` для настройки периодических обновлений в автоматическом режиме.

Термин CVSup, написанный с заглавными буквами, означает весь пакет программного обеспечения. Его основные компоненты это клиент `cvsup`, запускаемый на каждом пользовательском компьютере, и сервер `cvsupd`, работающий на каждом зеркале FreeBSD.

При чтении документации FreeBSD и списков рассылки вы могли встретить указания на sup. Sup был предшественником CVSup, и выполнял похожие функции. CVSup в основном используется тем же способом, что и sup, и, фактически, использует файлы настройки, обратно совместимые с файлами `sup`. Sup более не используется проектом FreeBSD, поскольку CVSup и быстрее и более гибок.

### A.5.2. Установка

Простейший способ установки CVSup это использование прекомпилированного пакета `net/cvsup` из коллекции пакетов FreeBSD. Если вы предпочтете собрать CVSup из исходных текстов, можете использовать вместо этого порт `net/cvsup`. Но имейте ввиду: порт `net/cvsup` зависит от системы Modula-3, которой потребуется существенный объем времени и пространства на диске для загрузки и установки.

### Примечание:

Если вы собираетесь использовать CVSup на компьютере, где нет установленного XFree86™ или Xorg, например на сервере, используйте порт, не включающий CVSup GUI, `net/cvsup-without-gui`.

### A.5.3. Настройка CVSup

Работа 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`, добавим список коллекций, по одной на строку (в нашем случае, только одну строку):

  src-all

- Какие их версии вам нужны?

  С 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`:

  *default tag=.

  Существует важный специальный случай, когда не задаются ни поле `tag=`, ни поле `date=`. В этом случае вы получите последние версии RCS файлов непосредственно из CVS репозитория сервера вместо получения определенной версии. Разработчики обычно предпочитают этот способ. Поддерживая копию репозитория в своей системе, они получают возможность просмотра истории ревизий и проверки последних версий файлов. Однако это достигается ценой большего занимаемого дискового пространства.

- Откуда вы хотите их получить?

  Мы используем поле `host=` для сообщения `cvsup` откуда забирать обновления. Подойдет любое из CVSup зеркал, хотя вы должны попробовать выбрать ближайшее к вам зеркало. В этом примере мы используем не существующий сервер, `cvsup99.FreeBSD.org`:

  *default host=cvsup99.FreeBSD.org

  Вам потребуется подставить адрес одного из существующих хостов перед запуском CVSup. При каждом запуске `cvsup`, вы можете перезаписать настройку хоста из командной строки, используя параметр `-h `hostname``.

- Где вы хотите разместить их на своем компьютере?

  Поле `prefix=` указывает `cvsup` где размещать получаемые файлы. В этом примере, мы поместим файлы непосредственно в главное дерево исходных текстов, `/usr/src`. Каталог `src` уже подразумевается в коллекциях, которые мы собираемся получить, поэтому корректное указание таково:

  *default prefix=/usr

- Где вы хотите разместить файлы статуса `cvsup`?

  Клиент CVSup поддерживает определенные файлы статуса в так называемом «base» каталоге. Эти файлы помогают CVSup работать более эффективно путем поддержки истории уже полученных обновлений. Мы будем использовать стандартный каталог base, `/var/db`:

  *default base=/var/db

  Если base каталог не существует, теперь подходящий момент для его создания. Клиент `cvsup` не запустится, если base каталог не существует.

- Различные настройки `supfile`:

  Существует еще одна строка, которая обычно должна присутствовать в `supfile`:

  *default release=cvs delete use-rel-suffix compress

  `release=cvs` означает, что сервер должен получать информацию из главного репозитория FreeBSD CVS. Это обычно всегда так, но существуют несколько иных вариантов, изложение которых выходит за пределы этой главы.

  `delete` дает CVSup возможность удалять файлы. Вы должны всегда указывать этот параметр, чтобы CVSup мог поддерживать дерево исходных текстов полностью актуальным. CVSup удалит только те файлы, за которые отвечает. Все другие файлы останутся нетронутыми.

  `use-rel-suffix` это ... мистика. Если вы действительно хотите узнать о нем, обратитесь к странице справочника cvsup(1). Иначе просто укажите это поле и не беспокойтесь о нем больше.

  `compress` включает использование gzip сжатия при передаче данных. Если ваше сетевое подключение работает со скоростью T1 или быстрее, вам возможно не потребуется использование сжатия. Иначе оно обычно помогает.

- Все это вместе:

  Вот полный `supfile` для нашего примера:

  *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all

#### A.5.3.1. Файл `refuse`

Как упомянуто выше, 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`:

doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/it_* doc/ja_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/sr_* doc/tr_* doc/zh_*

и так далее для других языков (полный список находится на странице FreeBSD CVS репозитория).

С этой очень полезной возможностью пользователи с низкоскоростным подключением или с поминутной платой за подключение смогут сохранить время, поскольку им более не потребуется загружать файлы, которые они никогда не будут использовать. За более подробной информацией о файлах `refuse` и замечательных возможностях CVSup, обратитесь к его справочной странице.

### A.5.4. Запуск CVSup

Теперь вы готовы к тестированию обновления. Командная строка для этого очень проста:

`#` `cvsup `supfile``

где ``supfile`` это конечно имя `supfile`, который только что был создан. При запуске под X11, `cvsup` отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите кнопку go и смотрите за его работой.

Поскольку в этом примере обновляется существующее дерево `/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).

### A.5.5. Коллекции файлов CVSup

Коллекции файлов, доступные через 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.

### A.5.6. Дальнейшая информация

CVSup FAQ и другая информация о CVSup находится на Домашней странице CVSup.

Большая часть связанных с FreeBSD обсуждений CVSup проводилась в списке рассылки freebsd-hackers. Новые версии программного обеспечения анонсируются здесь и в списке рассылки freebsd-announce.

Вопросы и сообщения об ошибках адресуйте автору программы `<cvsup-bugs@polstra.com>`.

### A.5.7. Зеркала CVSup

CVSup серверы для FreeBSD работают на следующих сайтах:

Центральные серверы

  - cvsup.FreeBSD.org

Основные зеркала

  - cvsup1.FreeBSD.org

  - cvsup3.FreeBSD.org

  - cvsup4.FreeBSD.org

  - cvsup5.FreeBSD.org

  - cvsup6.FreeBSD.org

  - cvsup7.FreeBSD.org

  - cvsup8.FreeBSD.org

  - cvsup9.FreeBSD.org

  - cvsup10.FreeBSD.org

  - cvsup11.FreeBSD.org

  - cvsup12.FreeBSD.org

  - cvsup14.FreeBSD.org

  - cvsup15.FreeBSD.org

  - cvsup18.FreeBSD.org

Armenia

  - cvsup1.am.FreeBSD.org

Австралия

  - cvsup.au.FreeBSD.org

Бразилия

  - cvsup2.br.FreeBSD.org

Германия

  - cvsup.de.FreeBSD.org

  - cvsup2.de.FreeBSD.org

  - cvsup3.de.FreeBSD.org

  - cvsup4.de.FreeBSD.org

  - cvsup5.de.FreeBSD.org

  - cvsup6.de.FreeBSD.org

  - cvsup7.de.FreeBSD.org

  - cvsup8.de.FreeBSD.org

Греция

  - cvsup.gr.FreeBSD.org

Дания

  - cvsup.dk.FreeBSD.org

  - cvsup2.dk.FreeBSD.org

Ирландия

  - cvsup.ie.FreeBSD.org

  - cvsup2.ie.FreeBSD.org

Исландия

  - cvsup.is.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.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

  - cvsup6.us.FreeBSD.org

  - cvsup7.us.FreeBSD.org

  - cvsup8.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

Франция

  - cvsup.fr.FreeBSD.org

  - cvsup1.fr.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

Пред. | Наверх | След.
A.4. Использование CTM | Начало | A.6. Использование Portsnap

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.