Решил обновить систему с 8.1 STABLE до 8.2 RC1

Шаг1: Получение исходных кодов.

Я использовал утилиту csup:

1) Скопируем пример конфигурационного файла для cvsup в удобную директорию, например /root/share/csup

deathstar# mkdir -p /root/share/csup/
deathstar# cp /usr/share/examples/cvsup/stable-supfile /root/share/csup/

b) Откроем /root/share/csup/stable-supfile на редактирование, где как минимум, необходимо задать на какую ревизию обновлять и откуда.

default release=cvs tag=RELENG_8_2

где tag= указывает, какую ветку следует синхронизировать.

Если Вы хотите иметь N-stable, ставьте RELENG_N

Если Вы хотите N.M-RELEASE, ставьте RELENG_N_M

Если Вы хотите обновится на HEAD (CURRENT), девелоп-версию FreeBSD, ставьте tag=.
default host=CHANGE_THIS.FreeBSD.org

CHANGE_THIS.FreeBSD.org — изменить на зеркало CVSup. Их список можно просмотреть, например здесь http://www.freebsd.org/doc/handbook/mirrors.html

Hint: можно использовать утилиту sysutils/fastest_cvsup для поиска наиболее быстрого/ближайшего для Вас зеркала

Строчки

default host=cvsup4.ru.FreeBSD.org
default release=cvs tag=RELENG_8_2

Заставят дерево исходных кодов обновиться до 8.2-RC1 (на момент написания статьи) с зеркала cvsup4.ru.freebsd.org

c) Создадим скрипт для запуска csup, например /root/bin/csup-bsd.sh

Содержимое файла:

#!/bin/sh
CSUP=`which csup`
CONFFILE="/root/share/csup/stable-supfile"

if [ ! -z ${CSUP} ]; then
${CSUP} -g -z ${CONFFILE}
else
echo "csup not found"
fi

d) Сделать скрипт выполняемым и запустить:

deathstar# chmod +x /root/bin/csup-bsd.sh
deathstar# sh /root/bin/csup-bsd.sh

Шаг1: Компилируем новую систему.
После обновления идем в папку /usr/src. Все изменения версий описаны в файле UPDATING.
Дальше буду писать какие надо выполнять команды:
1)
deathstar# cd /usr/obj
deathstar# rm -rf *
deathstar# cd /usr/src

Собираем мир:
2)
deathstar# make buildworld

Собираем ядро:
3)
deathstar# make buildkernel KERNCONF=YOUR_KERNEL_HERE (YOUR_KERNEL_HERE
— название ядра которое лежит в папке /usr/src/sys/i386/conf (по умолчанию это GENERIC)
4) Ставим ядро:

deathstar# make installkernel KERNCONF=YOUR_KERNEL_HERE

Перезагружаемся,и грузим комп в single mode
5)
deathstar# reboot

Синхронизация конфиг файлов
6)
deathstar# mergemaster -p

Ставим новую систему:
7)
deathstar# cd /usr/src
deathstar# make installworld

И снова правим файлы:
8)
deathstar# mergemaster -p

И последняя перезагрузка
9)
r deathstar# reboot

P.S.
А если сервер удаленный, то как его в single mode перевести? Никак 😉
Поэтому при обновлении я пропускаю пункт 5 и 6 и перехожу сразу к 7 пункту.
И смотрим что вышло

deathstar# uname -a
FreeBSD deathstar.name 8.2-RC1 FreeBSD 8.2-RC1 #1: Mon Jan 10 22:20:58 MSK 2011 root@deathstar.name:/usr/obj/usr/src/sys/GENERIC i386