Обновление портов FreeBSD - необходимая и совсем не сложная задача. Существует как минимум два способа это сделать. Первый способ - можно воспользоваться утилитой cvsup и второй вариант воспользоваться утилитой portsnap.
1. Использование утилиты cvsup
Для использования утилиты cvsup, необходимо установить ее порт, идем в папку /usr/ports и находим данную утилиту, используя команду:
#make search name='cvsup' | grep -v 'deps'
Получаем список портов:
Port: cvsup-16.1h_3
Path: /usr/ports/net/cvsup
Info: General network file distribution system optimized for CVS (GUI version)
Maint: jdp@FreeBSD.org
WWW: http://www.cvsup.org/
Port: cvsup-mirror-1.3_6
Path: /usr/ports/net/cvsup-mirror
Info: A kit for easily setting up a FreeBSD mirror site using CVSup
Maint: jdp@FreeBSD.org
WWW: http://www.cvsup.org/
Port: cvsup-without-gui-16.1h_3
Path: /usr/ports/net/cvsup-without-gui
Info: General network file distribution system optimized for CVS (non-GUI version)
Maint: jdp@FreeBSD.org
WWW: http://www.cvsup.org/
Port: cvsupchk-19990209_2
Path: /usr/ports/net/cvsupchk
Info: Check a CVSup directory hierarchy against the checkouts file
Maint: matthias.andree@gmx.de
WWW:
Port: fastest_cvsup-0.2.9_5
Path: /usr/ports/sysutils/fastest_cvsup
Info: Finds fastest CVSup server
Maint: nivo+kw+ports.bfa274@is-root.com
WWW: http://fastest-cvsup.sourceforge.net/
Port: net/cvsupit
Moved:
Date: 2003-08-06
Reason: port was marked broken for 3 months with no fix submitted
#
Первый порт - то что нам нужно, поэтому идем в папку /usr/ports/net/cvsup и устанавливаем порт, выполнив команду:
#make install clean
Замечание: если у вас нет папки /usr/ports, значит в системе нет дерева портов и его необходимо получить, при помощи sysinstall.
Далее необходимо настроить конфигурационный файл утилиты cvsup – supfile. Примеры конфигурационных файлов можно найти в папке /usr/share/examples/cvsup/. Cкопируем standard-supfile в /usr/local/etc/ :
#cp /usr/share/examples/cvsup/standard-supfile /usr/local/etc/
Приведем содержимое standard-supfile к следующему виду
#
# cvsup -g -L 2 standard-supfile
#
*default host=cvsup.de.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs
*default tag=.
*default delete use-rel-suffix
*default compress
#src-all
ports-all
doc-all
#
Распишем подробнее значение параметров конфигурационного файла утилиты cvsup
*default – указание псевдо-коллекции.
host= - указывает откуда будут браться обновления, в нашем случае с cvsup.de.FreeBSD.org
base= - размещение служебной информации cvsup, в данном случае используется стандартный каталог /var/db
prefix= - указывает, где размещать полученные файлы.
tag=. - в руководстве написано, что для дерева портов необходимо использовать tag=.
*default compress – сжимать файлы.
ports-all, doc-all – обновить все порты и документацию.
src-all – обновить тексты исходников
Далее запускаем непосредственно обновление портов, подсунув утилите cvsup конфигурационный файл supfile
#cvsup -g -L 2 /usr/local/etc/standard-supfile
Здесь ключ -g – отключает использование графического интерфейса, -L 2 – устанавливает уровень вывода информации утилитой cvsup на консоль.
Материалы Хэндбука FreeBSD по данной теме:
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/cvsup.html
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/ports-using.html
2. Использование утилиты слепков дерева портов portsnap
В данном случае все намного проще чем с утилитой cvsup. Утилита portsnap поддерживается, начиная с FreeBSD 6.0. Порядок использования утилиты следующий, для начала необходимо загрузить слепок дерева портов:
#portsnap fetch
По умолчанию слепок помещается в /var/db/portsnap/. Его можно переопределить, используя ключик –d. После загрузки слепка, из него может быть развернуто основное дерево портов. Это необходимо для установления точки отчета.
#portsnap extract
Затем необходимо скачать обновления (fetch) текущего слепка и обновить дерево портов (update). Можно воспользоваться одной командой.
#portsnap fetch update
На мой взгляд использование утилиты portsnap является более предпочтительным, так как она входит в стандартную установку FreeBSD, а также является достаточно простой.