суббота, 14 января 2012 г.

Обновление ядра, мира и портов в FreeBSD

Бинарное обновление
Для бинарного обновления, если используется ядро GENERIC:
# freebsd-update upgrade -r 8.2-RELEASE
# freebsd-update install
# shutdown -r now
# freebsd-update install
# freebsd-update install
# shutdown -r now
Обновление через csup
 Обновление исходных текстов:
# cp /usr/share/examples/cvsup/standard-supfile /etc/supfile 
Приводим супфайл к виду
*default host=cvsup6.ru.FreeBSD.org 
# Список зеркал можно найти тут http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_8_2
# Список тегов http://www.freebsd.org/doc/handbook/cvs-tags.html
*default delete use-rel-suffix
*default compress
src-all
 Запускаем:
# csup -g -L 2 /etc/supfile
Компиляция и установка
Чистим /usr/obj/:

# cd /usr/obj
# chflags -R noschg *
# rm -rf *
# cd /usr/src
# make cleandir  # хендбук рекомендует выполнять эту команду дважды (!)
# make cleandir
 Строим:
# cd /usr/src 
# make -s -j4 buildworld
# make -j4 -s buildkernel KERNCONF=Имяядра
 Ставим:
# make -s installkernel KERNCONF=Имяядра
Перезагружаемся в single user mode  или с помощью команды
# make -s installkernel KERNCONF=GARROTTE
При перезагрузке нужно смонтированы будут не все разделы, монтируем:
# mount -u
# mount -a 
 Перед установкой разбираемся с конфигами:
# mergemaster -p
  • d - оставить старый вариант файла, удалив новый;
  • i - установить новый, удалив старый;
  • m - построчное сравнение старого и нового файла;
  • v - сравнить файлы еще раз.
При выборе построчного сравнения. на экран быдут выведены обе версии файла, слева — содержимое старого файла, справа — нового. Возможные варианты действий:
  • l - использовать вариант слева, то есть старый;
  • r - использовать вариант справа, то есть новый;
Ставим мир:
# make installworld
Чистим старые библиотеки:
# cd /usr/src && make check-old
# yes | make delete-old
# yes | make delete-old-libs
 И /usr/obj/:
# cd /usr/obj && chflags -R noschg * && rm -rf *  
Обновление портов
Если дерево портов ещё не развернуто:
# portsnap fetch extract
Если уже:
# portsnap fetch update
Теперь обновляем утановленные порты утилитой portupgrade:

# portupgrade -arR 
Также потребуется указать флаг для конфигурации:
  • -c - Если вы хотите пропустить задание опций для портов, у которых уже были заданы требуемые опции.
  • -C - если  нужно заново задаь конфигурацию всем портам(Это долго)
  Так же можно использовать portmaster, но я не вижу особой разницы.

Комментариев нет:

Отправить комментарий