Про обновление 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
После можем собрать наше правильное ядро.
Все, наша система готова к работе.