FreeBSD. Обновление портов через CVSup

Если вам ничего не говорят такие слова как «фрибээсдэ», «порты», «компиляция», «конфиги» и так далее — вам совсем не нужно читать эту статью. Если всё же тема 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. Существует куча нюансов настроек, но все они выходят за рамки этой статьи. Если что-то не понятно или есть какие-то замечания/уточнения — пишите их в комментариях.

  1. 5:59

    Приведите файл к такому виду:

    Что-то я не пойму, всё остальное из него удалить!?

  2. 10:26

    Да, можете всё удалить. А можете изменить только эти строки. Результат будет одинаковым.

  3. 22:23

    хорошее дело начал, только продолжения статей по фре нет, может не все так плохо и публикации продолжатся

  4. 21:23

    Публикации продолжатся как только мне будет чем поделиться. Давненько не работаю с Фрёй напрямую, но вскоре планирую испробовать новенькую 8.0 и отписаться.

  5. 7:04

    [...] Мир микросхем Ещё летом я успел написать две заметки по горячо обожаемой мной FreeBSD. Время шло, готовилась [...]

  6. 18:28

    [...] это со старым методом обновления и поймёте насколько всё стало проще. Тут я немного [...]

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

  8. 10:03

    Это всего лишь означает, что сервер обновлений лёг. Вместо cvsup2 попробуйте cvsup3 или просто cvsup.ua.FreeBSD.org

    А вообще читайте новую статью, это старый метод обновлений.

  9. 8:27

    А где новая статья?
    Ссылку можно?

  10. 14:55

    “make fetchindex” нужно делать в директории /usr/ports
    или просто cd /usr/ports && make fetchindex

↓ Можете опубликовать своё мнение