Обновление портов FreeBSD3 июля 2012 21:59, 1 комментарий

FreeBSD, Памятки

В операционной системе FreeBSD, как и в любой другой, время от времени нужно обновлять программное обеспечение. Я, как и большинство пользователей FreeBSD, устанавливаю программы из системы портов. Для обновления портов FreeBSD существует несколько вариантов, но я пользуюсь утилитой portupgrade. Для начала нужно установить portupgrade и программу загрузки дерева портов. Полные пути выглядят так:

/usr/ports/net/cvsup-without-gui
/usr/ports/ports-mgmt/portupgrade

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

cp /usr/share/examples/cvsup/ports-supfile /etc/

И отредактировать во вновь скопированном файле /etc/ports-supfile адрес хоста, заменив строчку

*default host=CHANGE_THIS.FreeBSD.org

на

*default host=cvsup2.FreeBSD.org

Кроме этого, существует большое количество других серверов (и даже программ, которые их автоматически находят и подставляют), которые можно использовать для обновления дерева портов FreeBSD, но я пользуюсь только двумя cvsup2.FreeBSD.org и cvsup4.FreeBSD.org, меняя их вручную в случае занятости одного из них.

Теперь всё готово к обновлению. Но, перед началом обновления неплохо было бы проверить целостность зависимостей. Программа проверки ставится вместе с portupgrade.

pkgdb -F

Первым шагом необходимо обновить дерево портов.

cvsup -g -L 2 /etc/ports-supfile

За тем загружаем файл индекса портов и обновляем локальную базу данных индекса.

cd /usr/ports
make fetchindex
portsdb -u

Далее проверяем локальное дерево портов на возможные изменения, включая зависимости. При необходимости меняем их на новые или исправляем.

pkgdb -fF

Теперь просмотрим список изменённых портов, если таковые есть.

portversion -vl \< | tee /tmp/update-me

Я делаю это в два этапа. Сначала загружаю все необходимые файлы.

portupgrade -arRF

А уже потом, собственно, обновляю порты.

portupgrade -avrR

После обновления неплохо бы глянуть всё ли обновилось нормально.

portversion -vl \< >/tmp/update-me

Если что-то по каким-то причинам не обновилось, делаем это вручную.

cd /usr/ports/{port dir}/{port name}
make clean
portupgrade -f {port dir}/{port name}

После завершения всех операций приятно неплохо было бы проверить целостность зависимостей ещё раз. Строго говоря, утилита portupgrade делает это автоматически после обновлении каждого порта, но для чистоты эксперимента и успокоения сделаем это вручную ещё раз.

pkgdb -F

Всё! Дерево портов обновлено, устаревшие порты заменены новыми. Осталось только перезапустить работающие обновлённые программы или просто перезагрузиться, если это возможно.

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

К этой статье в настоящий момент 1 комментарий. Если вам есть, что добавить, вы можете оставить здесь и свой комментарий. Поля имя и почтовый адрес обязательны для заполнения. Адрес на сайте не публикуется.

Цитаты оформляются так: /* Цитируемый текст */.