DataLife Engine > Система > Обновление мира ("world")

Обновление мира ("world")


13-08-2010. Разместил: synergix Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE. FreeBSD-CURRENT является последними рабочими версиями исходных кодов FreeBSD и предназначена в первую очередь для разработчиков, тестеров и просто интересующихся людей. В отличие от FreeBSD-CURRENT ветка FreeBSD-STABLE является разработкой, из которой делаются основные релизы. Соответственно для использования на ответственных серверах рекомендуется FreeBSD-STABLE.
Для того чтобы иметь самые последние версии исходных текстов системы необходимо провести синхронизацию с любым из серверов проекта FreeBSD. Для этих целей воспользуемся утилитой cvsup с sup-файлом stable-supfile из каталога /usr/share/examples/cvsup. Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Если интернет трафик ограничен, то имеет смысл перенести исходные тексты с установочного диска и затем провести синхронизацию.
Копируем stable-supfile и приводим его содержание к следующему виду.
server# cp /usr/share/examples/cvsup/stable-supfile /etc/
server# vi /etc/stable-supfile
# Выбираем cvsup сервер. Кому какой ближе.
*default host=unix.uz
*default base=/var/db
*default prefix=/usr
# Качаем исходные тексты 8 ветки. Если необходимо 7, 6, 5 или 4.11 то меняем на
# "RELENG_7", "RELENG_6", "RELENG_5", "RELENG_4_11" соответственно.
# Если не указывать версию в ветке (RELENG_8), то будут скачиваться исходники
# последней доступной версии, которая не обязательно может быть STABLE
*default release=cvs tag=RELENG_8
*default delete use-rel-suffix
# Включаем сжатие трафика
*default compress
# Качаем полное дерево исходников
src-all


Запускаем cvsup и ждем пока закончится обновление.
# cvsup -g -L2 /etc/stable-supfile


Переходим в /usr/scr и начинаем процесс обновления. Запаситесь терпением, так как это занимает 1-2 часа на P4.
# cd /usr/src/
# rm -rf /usr/obj
# make -j4 buildworld


Где j4 - компилировать в 4 потока. Рекомендуется для однопроцессорных машин, т.к. компиляция в большей степени требовательная к системе ввода-вывода, а не процессору. Для многопроцессорных это значение можно увеличить.
Для настройки системы можно использовать make.conf. Пример смотрите здесь /usr/share/examples/etc/make.conf или в этой статье.
# make -j4 buildkernel KERNCONF=MYKERNEL


Где MYKERNEL - ваше ядро. Без KERNCONF=MYKERNEL собирается с ядром GENERIC. В следующей строке поступаем соответственно.
# make installkernel KERNCONF=MYKERNEL


Перезагрузимся
# reboot


Перейдем в однопользовательский режим. При загрузке жмем 4, либо из основного режима следующей командой
# shutdown now


Монтируем разделы файловой системы.
# mount -u /
server# mount -a
server# mergemaster -p


Устанавливаем мир
# cd /usr/src
# make installworld


Удаляем временные файлы
# make delete-old


Сравниваем конфигурационные файлы
# mergemaster


Несколько слов о работе этой утилиты. Она сравнивает уже установленные файлы конфигурации с теми которые предлагаются новой версией FreeBSD. Если есть отличия, то на экране появляется сообщение об этом. Первой строкой в нем идет имя файла, который не соответствует новым требованиям, а ниже сами отличия. Знаком "-" помечаются строки, которые утилита собирается удалить, а "+" - которые будут добавлены.
В конце предлагаются следующие варианты:
d - удалить предлагаемый вариант и оставить старый;
i - установить предлагаемый вариант, удалив старый;
m - сравнить построчно старый и предлагаемый вариант;
v - посмотреть отличия в файлах снова.
Чаще всего можно жать i, но иногда это может привести к замене ваших настроек на дефолтные. Так что будьте внимательны. Начинается построчное сравнение файлов. Экран делится на две части, слева строки из старого файла, а справа из предлагаемого. При нажатии на "Enter" выводятся возможные варианты последующих действий:
l - использовать вариант с левой стороны;
r - использовать вариант с правой стороны;
и т.д.
В моем случае, чтобы оставить старые настройки жмем "l". После того как сравнение кончилось, предлагаются следующие варианты:
i - установить получившийся файл;
r - повторить сравнение снова;
v - просмотреть получившийся файл.
Возможен также вариант, когда с новой версией системы появляются новые файлы, которых до этого не было. В таком случае предлагается только 2 варианта:
d - удалить предлагаемый вариант и оставить старый;
i - установить предлагаемый вариант, удалив старый.
И в таком же духе сравниваются все файлы.
Перезагрузимся:
# reboot
# cd /usr/src/
# make delete-old-libs


Все. Проверяем.
# uname -a
# ... FreeBSD 8.1-STABLE #0 ...


До обновления было FreeBSD 8.0-RELEASE-p4.
Вернуться назад