Обновление FreeBSD – CVSup

On 26.03.2010, in FreeBSD, by Passenger

CVSup — пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удалённом сервере.

Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии.
CVSup может использовать пакет zlib для сжатия передаваемых данных.
CVSup написана на языке программирования Модула-3, её разрабатывает Джон Полстра (John Polstra).
Такую информацию нам предоставила всемирная энциклопедия wikipedia.org.
C её помощью можно обновиться как до текущей стабильной ветки так и до одного из релизов. На мой взгляд по данному вопросу не так много информации в сети. .Публикация приведена дляи того, чтобы показать – порты нужно обновлять, и сделать это совсем несложно.
Всё что тут описано – делалось на системе FreeBSD 7.2 и за основу была взята статья «Ипользование утилиты CVSup» (где в пример приведена FreeBSD 4.11), но отличия по большому счету минимальны, если они будут вообще.

С чего начнем. Конечно же нам надо установить порт CVSup. Он может быть c GUI и без него. Так как на моем сервере, да и наверно и у вас такой функционал не нужен ищем пакет без GUI:
server# whereis cvsup-without-gui
cvsup-without-gui: /usr/ports/net/cvsup-without-gui

Что ж, нашли, теперь идем и ставим

server# cd /usr/ports/net/cvsup-without-gui/
server# make && make install && make clean

При установке будет задан вопрос от gettext что инсталлировать, я выбрал оба пункта – и файлы примеров и справку в html формате. Пригодится. CVSup как зависимости просит установить ещё портов, ориентировочно на 30 Мб.
expat-2.0.1 XML 1.0 parser written in C
ezm3-1.2 Easier, more portable Modula-3 distribution for building CV
gettext-0.17.1 GNU gettext package
gmake-3.81_3 GNU version of ‘make’ utility
libiconv-1.11_1 A character set conversion library
libtool-1.5.26 Generic shared library support script (version 1.5)

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

server# cd /usr/share/examples/cvsup
server# ls
README ports-supfile standard-supfile
cvs-supfile refuse www-supfile
doc-supfile refuse.README
gnats-supfile stable-supfile
server# cp standard-supfile /usr/local/etc/cvsup.conf
server# cd /usr/local/etc/
server# ee cvsup.conf

Вывод получился следующим:

#
# cvsup -g -L 2 /usr/local/etc/cvsup.conf
#
*default host=CHANGE_THIS.FreeBSD.org*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_2
*default delete use-rel-suffix
*default compress

src-all

Строка cvsup -g -L 2 /usr/local/etc/cvsup.conf приведена только для удобопользования, что бы можно было легко запустить обновление. В параметре host приведено имя сервера с которого будут браться обновления – его вы можете выбрать самостоятельно, разница только том, какой из них будет больше всего загружен. После проделанной работы можно запускать:

server# rehash
server# cvsup -g -L 2 /usr/local/etc/cvsup.conf && make fetchindex

Первый раз на обновление всего дерева портов уходит порядка 20 Мб трафика, в дальнейшем его будет гораздо меньше. Также, первое обновление самое долгое. У меня ушло почти 2 часа.
На этом этапе можно заканчивать статью, поставленная задача нами выполнена, теперь у нас свежая версия портов. Стоит завести себе за правило – перед каждой установкой обновлять порты – этим вы избавите себя от лишних забот.

P.S. Вообще начиная с 5-ки появилась новая утилита portsnap – но она толи бестолковая какая-то, то ли у меня лыжи не едут – она пытается всё архивное дерево портов затащить – 39 мегов… Нафик оно мне надо, если обновление с помощью cvsup выльется мне в пару мегабайт? Да и обновлять она может только порты, исходные коды системы не может….

Tagged with:  

2 Responses to Обновление FreeBSD – CVSup

  1. А я еще где-то скриптов надыбал, которые управляют процессом поиска самого доступного сервера и качают с него…

  2. admin:

    О, да, это очень удобно. Очень удобно добавить к этой вещи выполнение по крону и оповещение по смс. В этом плане меня настораживает чистота кода, есть ли там закладки, которую нарушают инф. безопасность.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>