Обновление портов FreeBSD

Категория: / DEV Блог / Сервер (FreeBSD)
Ставим cvsup (утилита обновления портов)

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


Создаем в домашней папке директорию cvsup

Там создаем следующие файлы

ports-supfile

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


Заметьте, tag=. обозначает текущий релиз/ветку вашей FreeBSD.

Примеры supfile файлов лежат в /usr/share/examples/cvsup.

Для определения самого быстрого cvsup-сервера можно воспользоваться портом
/usr/ports/sysutils/fastest_cvsup (pkg_add -r fastest_cvsup).
Запускаем fastest_cvsup -c ru. Программа протестирует на скорость ответа все сервера русской зоны.
Выберите самый быстрый и впишите его в параметр default host.

cvsup.sh

#!/bin/sh
cvsup -g -L 2 /root/cvsup/ports-supfile
 
# update index - стятен индекс портов из сети, вместо того чтобы собирать его локально
portsdb -Fu


-L 2 обозначает уровень отчетности скрипта. Установите в 0, если не хотите видеть
список обновляемых портов (генерит лишний трафик для вывода списка).

Обновить коллекцию портов теперь можно скриптом cvsup.sh,
который можно повесить на крон (periodic/daily например).

Установка портов

cd /usr/ports
make search name="port_you_want"
cd port_path
make clean
make
make install
 
#make config - сконфигурировать порт, если он имеет опции
 
# в случае если порт апгрейдится, делаем так
make clean
make deinstall
make
make reinstall


Устанавливать порты можно утилитой portinstall (она является алиасом команды portupgrade -N)
Чтобы не собирать порты, можно воспользоваться ключем -P, при котором приоритет отдается пакетам (packages),
если не оказывается нужного, будет собран порт из исходников.

Пакеты - это бинарные (скомпилированые) порты, готовые к употреблению на вашей системе.
Пакетами можно управлять с помощью команд, начинающихся на pkg_*

pkg_info # показать информацию о пакетах
pkg_info | grep <пакет> #выберет только интересующую информацию
pkg_add -vrf <пакет> #добавить пакет с удаленного репозитория и покажет полный лог действий
pkg_delete <пакет> # удалить пакет


Другое

#Удобная утилита отображет дерево зависимостей для порта
pkg_tree -tv <port>
 
#Починить зависимости пакетов
pkgdb -fu