FreeBSD - обновление distribution & ports

Предварительные шаги

Необходимо установить с установочного диска при помощи sysinstall - src-all, ports.

Edit /etc/make.conf (архитектура amd64)

# ----------- Optimization --------------------------------
## CPU type. Check - run command "sh -c 'cc -march=native -E -v - </dev/null 2>&1 | grep cc1'"
CPUTYPE?=core2

## Flags. Check - run command "make -C /usr/src/ -V CFLAGS"
CFLAGS= -O2 -fno-strict-aliasing -pipe -march=core2 -mtune=core2 -msse3
CXXFLAGS+= -fconserve-space
NO_CPU_CFLAGS=
NO_CPU_COPTFLAGS=
MAKE_SHELL=sh

NO_GAMES=yes
WITHOUT_GAMES=yes
WITHOUT_INET6=yes
WITHOUT_INET6_SUPPORT=yes
WITHOUT_IPV6=yes
WITHOUT_PROFILE=yes
NO_PROFILE=yes
WITHOUT_X11=yes
# ------------------------------------------------------
      
# --------------- kernel config -------------------
KERNCONF=YOUR_CONF
#MODULES_OVERRIDE = accf_http accf_data nullfs
# --------------------------------------------------

Сборка, установка мира

Выполним обновление исходных текстов FreeBSD:

 # cd /usr/src && make update

Выполним шаги по статье FreeBSD - настройка ядра

Выполним сборку мира и ядра (в make.conf закоментировать оптимизацию):

 # cd /usr/src
 # make buildworld
 # make buildkernel
 # make installkernel

Запишем в автозагрузку следующие модули:

 # echo "accf_http_load="YES"" >> /boot/loader.conf
 # echo "accf_data_load="YES"" >> /boot/loader.conf

Disable services and reboot:

 # chmod -x /usr/local/etc/rc.d/*
 # shutdown -r now

Выполним инсталяцию мира:

 # mergemaster -p
 # cd /usr/src
 # TMPDIR=/var/tmp/ make installworld
 # mergemaster -FiU
 # chmod +x /usr/local/etc/rc.d/*
 # shutdown -r now

Если ОС установлена на zfs пул, то перед перезагрузкой обновленной системы не забудьте выполнить:

zpool upgrade -a
zfs upgrade -a
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
reboot

Почистим систему:

 # chflags -R noschg /usr/obj/
 # rm -rf /usr/obj/
 # cd /usr/src && make clean

Удаление старый файлов и библиотек:

cd /usr/src
make delete-old
make delete-old-libs

Данные команды интерактивно будут Вас спрашивать удаление конкретного устаревшего файла. Если вы уверены в себе и своей системе, удалить без вопросов можно через:

  yes | make delete-old
  yes | make delete-old-libs

Процесс обновления завершен.

Обновление портов

Установим cvsup-without-gui

 # cd /usr/ports/net/cvsup-without-gui
 # make install clean

Обновим дерево портов:

 # cd /usr/ports && make update
 # portsdb -Fu

Установим portupgrade:

 # cd /usr/ports/ports-mgmt/portupgrade
 # make install clean

Проверим наличие обновлений:

 # portversion -l "<"

Обновим установленные порты:

 # portupgrade -anrR (смотрим что будет сделано)
 # portupgrade -aFrR (скачиваем необходимый софт)
 # portupgrade -arR  (установка)

Бинарное обновление ОС

Конфиг /etc/freebsd-update.conf

KeyPrint 800651ef4b4c71c27e60786d7b487188970f4b4169cc055784e21eb71d410cc5
ServerName update.FreeBSD.org
Components src world kernel src/src
IgnorePaths
IDSIgnorePaths /usr/share/man/cat
IDSIgnorePaths /usr/share/man/whatis
IDSIgnorePaths /var/db/locate.database
IDSIgnorePaths /var/log
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
MergeChanges /etc/ /boot/device.hints
BackupKernel yes
BackupKernelDir /boot/kernel.old

Скачаем и развернем src (если не установлены)

cd /tmp/
fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/YOUR-VERSION-RELEASE/src.txz
cd / && tar -xvzf /tmp/src.txz && rm -f /tmp/src.txz

Скачаем обновления

freebsd-update fetch

Установим обновления

freebsd-update install
shutdown -r now
freebsd-update install

Ссылки

Комментарии

 
blog/2011/12/08-freebsd_-_обновление_distribution_ports.txt · Последние изменения: 2015/08/21 16:02 — Антон Бугреев · []