Фев 172014
 

Про обновление FreeBSD много где написано, в том же хендбуке. Но…хочется иногда убрать *воду* из описание и подсматривать только основные моменты. И так приступим.
Версия моей системы на данный момент

FreeBSD slik45.kiev.ua 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255985: Wed Oct  2 05:59:14 UTC 2013     root@reotest2.reotest:/usr/obj/usr/src/sys/GENERIC  i386

Систему поставил 2 недели назад, старая была 9.1, там посыпался системный винт, рейда не было и нет, так как это домашний роутер + тестовая машина для пары сайтов.

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

cd /usr/share/examples/cvsup/
# ls -ll
total 24
-r--r--r--  1 root  wheel  1136 Sep 27 07:02 README
-r--r--r--  1 root  wheel  3390 Sep 27 07:02 cvs-supfile
-r--r--r--  1 root  wheel  2108 Sep 27 07:02 gnats-supfile
-r--r--r--  1 root  wheel  3164 Sep 27 07:02 stable-supfile
-r--r--r--  1 root  wheel  2855 Sep 27 07:02 standard-supfile

Укажем необходимую нам версию FreeBSD
В файле конфигурации по умолчанию видим следующие

 cat standard-supfile|grep defa
*default host=CHANGE_THIS.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_9
*default delete use-rel-suffix
*default compress

Копируем и немного правим файл

# cp standard-supfile standard-supfile-RELENG_9_2
# cat standard-supfile-RELENG_9_2 | grep default
*default host=CHANGE_THIS.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_9_2
*default delete use-rel-suffix
*default compress
src-all

Теперь приступаем к синхронизации src, делается это просто

/usr/bin/csup -h cvsup8.ua.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/standard-supfile-RELENG_9_2

После завершения синхронизации приступаем к обновлению системы, но не забываем прочитать UPDATING чтобы не было у нас потом сюрпризов 🙂
На синхронизацию уходит примерно 30 минут, зависит от загрузки сервера и интернет канала.
Проверяем, появились ли у нас исходные коды и заодно посмотрим дату файлов.

cd /usr/src/ && ls -ll
total 456
-rw-r--r--    1 root  wheel    6200 Dec 31  2010 COPYRIGHT
-rw-r--r--    1 root  wheel   12990 Dec 21  2010 Makefile
-rw-r--r--    1 root  wheel   42773 Dec 22  2010 Makefile.inc1
-rw-r--r--    1 root  wheel  230702 Dec 21  2010 ObsoleteFiles.inc
-rw-r--r--    1 root  wheel    3087 Dec 21  2010 README
-rw-r--r--    1 root  wheel   72931 Aug  7  2012 UPDATING
-rw-r--r--    1 root  wheel     661 Nov 28  2012 WARNING_DEPRECATED.txt
drwxr-xr-x   40 root  wheel    1024 Feb 13 13:54 bin
drwxr-xr-x    8 root  wheel     512 Feb 13 13:55 cddl
drwxr-xr-x   55 root  wheel    1024 Feb 13 14:04 contrib
drwxr-xr-x    5 root  wheel     512 Feb 13 14:05 crypto
drwxr-xr-x   22 root  wheel    2048 Feb 13 14:06 etc
drwxr-xr-x   13 root  wheel     512 Feb 13 14:06 games
drwxr-xr-x    4 root  wheel     512 Feb 13 14:06 gnu
drwxr-xr-x    7 root  wheel    2048 Feb 13 14:07 include
drwxr-xr-x    9 root  wheel     512 Feb 13 14:07 kerberos5
drwxr-xr-x   80 root  wheel    1536 Feb 13 14:09 lib
drwxr-xr-x   31 root  wheel    1024 Feb 13 14:09 libexec
drwxr-xr-x   12 root  wheel     512 Feb 13 14:09 release
drwxr-xr-x    4 root  wheel     512 Feb 13 14:09 rescue
drwxr-xr-x   91 root  wheel    2048 Feb 13 14:09 sbin
drwxr-xr-x    6 root  wheel     512 Feb 13 14:10 secure
drwxr-xr-x   24 root  wheel     512 Feb 13 14:11 share
drwxr-xr-x   56 root  wheel    1024 Feb 13 14:18 sys
drwxr-xr-x   12 root  wheel     512 Feb 13 14:19 tools
drwxr-xr-x  232 root  wheel    4096 Feb 13 14:19 usr.bin
drwxr-xr-x  208 root  wheel    4096 Feb 13 14:20 usr.sbin

Как видим видим все на месте, приступаем к сборке мира. Перед этим запасаемся попкорном, чипсами, пивом 🙂

[root@slik45 /usr/src]# rm -R /usr/obj/* && make cleandir && make cleandir && make buildworld && make installworld

Процесс сборки и установки мира довольно таки длительный, у меня ушло на это 1.30 времени.
Далее перегружаемся

shutdown -r now

Ждем пока загрузится наш сервер 🙂
После загрузки сервера удаляем старые файлы

cd /usr/src
yes | make delete-old

Далее запускаем mergemaster, он сверяет файлы конфигурации, мы принимаем решения какие оставлять или удалять.
После того как закончится объединение всех файлов, делаем контрольную перезагрузку, удаление старых библиотек.

# shutdown -r now
# cd /usr/src/
# make delete-old-libs
# uname -a
FreeBSD slik45.kiev.ua 9.2-RELEASE FreeBSD 9.2-RELEASE #0: Fri Feb 14 16:26:26 EET 2014     root@slik45.kiev.ua:/usr/obj/usr/src/sys/SLIK  i386

После можем собрать наше правильное ядро.
Все, наша система готова к работе.