Важную роль в производительности и стабильности операционной системы, а так же в поддержке серверов, является ее своевременное обновление. Про обновление дерева портов мы уже писали ранее. Давайте рассмотрим несколько способов обновления FreeBSD.
Мне кажется, самый простой способ заключается в использовании порта sysupdate им можно не только обновить систему, но и порты.
# cd /usr/ports/sysutils/sysupdate
# make && make install && make clean && rehash
После того как мы установили эту утилиту, можно приступить к запуску. По сути, это интуитивно понятный графический интерфейс к csup.
# sysupdate.sh ( вызываем утилиту )
После того как выбрали что нам нужен конфигурационный файл с выбранными опциями сохранить в /root/.sysupdate/
Если потребуется изменить параметры нужно будет удалить этот каталог
# rm -p /root/.sysupdate
Дугой способ обновления FreeBSD встроеной утилитой freebsd-update в пределах одной ветки.
# uname -a
# 8.0-GENERIC-p4
# freebsd-update -r 8.2-RELEASE upgrade (если ядро не GENERIC нужно указать в /etc/make.conf
KERNCONF=my )
# freebsd-update install (устанавливаем все)
# shutdown -r now
# freebsd-update install (после перезагрузки устанавливаем обновления)
Обновление при помощи csup, который с FreeBSD 6.2 находится в базовой установке.
# touch /etc/csupfile (сначала нужно создать конфигурационный файл)
# ee /etc/csupfile
*default host=cvsup4.ru.FreeBSD.org (зеркало данных)
*default base=/usr ( каталог для хранения временных и служебных файлов)
*default prefix=/usr (каталог для сохранения скаченных данных)
*default release=cvs tag=RELENG_8_2 (номер релиза до которого хотим обновиться)
*default delete use-rel-suffix
*default compress (включаем сжатие трафика)
src-all (скачиваем все исходные коды)
# cvsup -g -L 2 /etc/csupfile (запускаем обновление FreeBSD)
# cd /usr/src
# rm -rf /usr/obj
# make -j8 buildworld (j8 - компилировать в 8 потоков)
# make -j8 buildkernel KERNCONF=MYKERNEL (собираем ядро)
# make installkernel KERNCONF=MYKERNEL (устанавливаем ядро)
# shutdown -r now
После перезагрузки входим в однопользовательский режим
# mount -u /
# mount -a
# mergemaster -p
# cd /usr/src
# make installworld
# make delete-old
# mergemaster
# reboot
# cd /usr/src
# make delete-old-libs