Локальное и удаленное обновление FreeBSD

Posted Пт, 07/24/2009 - 10:09 by Raven2000

Написал краткую справку об обновлении локальных и удаленных серверов в пределах одной ветки.

Обновление csup

Сначала вам необходимо обновить исходные коды системы, и мы будем использовать штатные средства операционной системы csup. Конфигурационный файл уже готов и его необходимо чуть подправить он находится тут.

# cd /usr/share/examples/cvsup/

# ls

README gnats-supfile refuse.README www-supfile

cvs-supfile ports-supfile stable-supfile

doc-supfile refuse standard-supfile

Необходимо указать необходимую нам версию операционной системы.

В существующем конфигурационном файле стоит текущая версия.

# cat standard-supfile | grep default

*default host=CHANGE_THIS.FreeBSD.org

*default base=/var/db

*default prefix=/usr

*default release=cvs tag=RELENG_7_1

*default delete use-rel-suffix

*default compress

Скопируем файл и немного изменим:

# cp standard-supfile standard-supfile-RELENG_7_2

# cat standard-supfile-RELENG_7_2 | grep default

*default host=CHANGE_THIS.FreeBSD.org

*default base=/var/db

*default prefix=/usr

*default release=cvs tag=RELENG_7_2

*default delete use-rel-suffix

*default compress

Теперь нам необходимо синхронизировать src делается просто:

# /usr/bin/csup -h cvsup4.ru.freebsd.org -g -L 2 /usr/share/examples/cvsup/standard-supfile-RELENG_7_2

Когда синхронизация завершилась, приступим к обновлению системы (не забываем прочитать файл UPDATING чтобы все прошло гладко). Предупреждаю, что сначала мы будем устанавливать, ядро GENERIC и если все пройдет гладко и вы протестируете хотя бы один день сервер то можете, скомпилируйте свое ядро.

Очистим директории, от предыдущего мусора соберем мир и ядро и установим ядро:

# cd /usr/obj ;chflags -R noschg * ;rm -rf *

# cd /usr/src

# make -j4 buildworld

# make -j4 buildkernel KERNCONF=GENERIC

# make installkernel KERNCONF=GENERIC

Теперь начинаются различия обновления локального и удаленного серверов. Рассмотрим два этих варианта:

Локальный сервер

Для безопасного и корректного обновления необходимо ввести машину в single mode можно сделать двумя способами:

Перезагрузкой и выбором в стартовом меню загрузку в single mode (номер 4).

# shutdown -r now

Или напрямую активировать данный режим:

# shutdown now

Удаленный сервер

Вам необходимо отключить в /etc/rc.conf все службы, в которых нет необходимости для запуска системы (sshd не выключать!). Это СУРБД, FTP, Apache и т.д. и перезагрузится. Можно и самим остановить эти службы без перезагрузки системы.

Продолжаем обновление

При запуске системы в нашем случае это локальный сервер необходимо смонтировать корневой каталог и остальные разделы. А так же запустим mergemaster для создания начальной точки работы:

# /sbin/mount -u /

# /sbin/mount -a

# csh

# su

# mergemaster -p

Установим мир и удалим старые файлы.

# cd /usr/src

# make installworld

# make delete-old

Для автоматизации удаления старых версий выполните:

yes | make delete-old

mergemaster

Запустим mergemaster для синхронизации файлов, библиотек, конфигурационных файлов с новыми версиями.

# mergemaster -cv (c-контекстный diffs вместо унифицированного)

mergemaster сравнивает существующие конфигурационные файлы с теми, которые предлагаются новой версией FreeBSD. И если существуют отличия, то появляется сообщение об этом. Первой строкой в нем идет имя файла, который не соответствует новым требованиям, а ниже сами отличия.

Знаки:

- - этим знаком помечаются строки, которые mergemaster собирается удалить.

+ - этим знаком помечаются строки, которые будут добавлены.

Есть несколько вариантов управления и в низу mergemaster предлагают следующие варианты работы с текущим файлом:

d - удалить предлагаемый вариант оставить старый.

i - установить предлагаемый вариант, удалив старый.

m - сравнить и объединить при необходимости построчно старый и новый вариант.

v - посмотреть отличия в файлах снова.

При построчном сравнивании экран делится на две части, слева строки из старого файла, а справа из предлагаемого. При нажатии на "Enter" выводятся возможные варианты последующих действий:

l - использовать вариант с левой стороны.

r - использовать вариант с правой стороны.

и т.д.

После того как сравнение файла закончилось, предлагаются следующие варианты:

i - установить получившийся файл.

r - повторить сравнение снова.

v - просмотреть получившийся файл.

Бывает, что с новой версией системы появляются новые файлы, которых до этого не было. В таком случае предлагается 2 варианта:

d - удалить предлагаемый вариант и оставить старый.

i - установить предлагаемый вариант, удалив старый.

И так сравниваются все файлы.

Завершение

Когда закончите, объединять файлы перезапустите систему и удалите старые библиотеки, а так же проверьте версию системы:

# shutdown -r now

# cd /usr/src/

# make delete-old-libs

# uname -a

FreeBSD bsd.ampul.local 7.2-RELEASE FreeBSD 7.2-RELEASE #1: Tue May 19 09:55:51 MSD 2009 Raven2000@bsd.ampul.local:/usr/obj/usr/src/sys/MYKERNEL i386

http://www.ignix.ru/public/local_remote_update_freebsd

Обновлено: 12.03.2015