FreeBSD. Обновление портов через CVSup
29 июля 2009
Заметки, Мир микросхем
Если вам ничего не говорят такие слова как «фрибээсдэ», «порты», «компиляция», «конфиги» и так далее — вам совсем не нужно читать эту статью. Если всё же тема FreeBSD вам интересна — прочтите для начала официальное руководство (на русском!)
Итак, я не буду рассказывать процесс установки «фряхи». Там всё довольно очевидно и у подготовленного человека никаких затруднений не вызовет. Если вызовет — можно почитать в том же руководстве серию статеечек по теме.
Так вот, допустим, поставили вы себе, или не себе, это чудо. Но ведь система сама по себе лишь платформа для выполнения различных приложений. И скорее всего вам таки нужно установить некоторые программы, да? Как я уже упоминал, программы во FreeBSD ставятся обычно с портов или пакетов. Мы пойдём не самым простым путём, зато самым клёвым — будем собирать софт с портов. И для начала эти самые порты нужно обновить. Небольшое примечание для тех, кто вообще не в теме. Порт — это, грубо говоря, несколько файлов с описаниями и инструкциями вида «что за прога, как её собирать, какие зависимости от других прог» и тому подобное. Сами исходники в портах не хранятся, а скачиваются по запросу с интернета (обычно). А обновлять порты нужно потому, что ссылки меняются, зависимости обновляются, софт развивается и порты должны быть в курсе происходящего. Нам не нужны старые дырявые программы, верно?
Я использую последний стабильный на сегодняшний день релиз FreeBSD — 7.1. Но рецепт должен работать и на более старых версиях.
CVSup — это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии.
Вот такую штуку мы сейчас и настроим.
На сервере не стоит ставить GUI, поэтому если вы уже поставили иксы… то зря вы это сделали, удаляйте :) Ставим с портов саму программу — cvsup-without-gui
cd /usr/ports/net/cvsup-without-gui make install clean
cvsup тащит за собой немало зависимостей, но они все ей нужны для нормальной работы. После установки копируем файл настроек и редактируем его.
cd /usr/share/examples/cvsup/ cp standard-supfile /usr/local/etc/supfile cd /usr/local/etc/ ee supfile
Приведите файл к такому виду:
# cvsup -g -L 2 /usr/local/etc/supfile - именно с помощью такой команды мы будем в дальнейшем обновлять порты *default host=cvsup2.ua.FreeBSD.org # я с Украины, поэтому сервер украинский. Найдите наиболее подходящий вам в списке на www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/cvsup.html#CVSUP-MIRRORS *default base=/usr *default prefix=/usr *default release=cvs tag=RELENG_7_1 # у меня такая версия системы, у вас может отличаться *default delete use-rel-suffix *default compress ports-all tag=.
После всех этих манипуляций — обновляем, наконец, порты:
rehash cvsup -g -L 2 /usr/local/etc/supfile make fetchindex
Первый раз — всегда самый напряжный. Занимает много времени (у меня часа 2) и трафика (не считал, но пару десятков мегабайт — точно). Зато потом процесс будет происходить довольно быстро и безболезненно.
Перед каждой установкой новой программы набираем
cvsup -g -L 2 /usr/local/etc/supfile
ждём немного и наслаждаемся свежайшими портами стабильного софта. Ура, товарищи!
P.S. Существует куча нюансов настроек, но все они выходят за рамки этой статьи. Если что-то не понятно или есть какие-то замечания/уточнения — пишите их в комментариях.

Дмитрий 31 июля 2009 5:59
Приведите файл к такому виду:
Что-то я не пойму, всё остальное из него удалить!?
Veles 31 июля 2009 10:26
Да, можете всё удалить. А можете изменить только эти строки. Результат будет одинаковым.
paravoz 25 ноября 2009 22:23
хорошее дело начал, только продолжения статей по фре нет, может не все так плохо и публикации продолжатся
Veles 28 ноября 2009 21:23
Публикации продолжатся как только мне будет чем поделиться. Давненько не работаю с Фрёй напрямую, но вскоре планирую испробовать новенькую 8.0 и отписаться.
FreeBSD. Начнём с самого начала | Бузочок 17 декабря 2009 7:04
[...] Мир микросхем Ещё летом я успел написать две заметки по горячо обожаемой мной FreeBSD. Время шло, готовилась [...]
FreeBSD. Порты и пакеты | Бузочок 21 декабря 2009 18:28
[...] это со старым методом обновления и поймёте насколько всё стало проще. Тут я немного [...]
Dmitriy 28 декабря 2009 7:50
# rehash
# cvsup -g -L 2 /usr/local/etc/supfile
Parsing supfile “/usr/local/etc/supfile”
Connecting to cvsup2.ua.FreeBSD.org
Connected to cvsup2.ua.FreeBSD.org
Rejected by server: Access limit exceeded; try again later
Will retry at 06:41:23
Retrying
Connecting to cvsup2.ua.FreeBSD.org
Connected to cvsup2.ua.FreeBSD.org
Rejected by server: Access limit exceeded; try again later
Will retry at 06:52:01
Veles 28 декабря 2009 10:03
Это всего лишь означает, что сервер обновлений лёг. Вместо cvsup2 попробуйте cvsup3 или просто cvsup.ua.FreeBSD.org
А вообще читайте новую статью, это старый метод обновлений.
Dmitriy 30 декабря 2009 8:27
А где новая статья?
Ссылку можно?
kan 1 марта 2010 14:55
“make fetchindex” нужно делать в директории /usr/ports
или просто cd /usr/ports && make fetchindex