Заметки сисадмина » Обновление FreeBSD с помощью cvsup

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Обновление FreeBSD с помощью cvsup

2007-04-22 · Posted in FreeBSD

Обновление FreeBSD с помощью cvsup
Для обновления системы c помощью cvsup нам необходимо поставить пакет cvsup из порта /usr/ports/net/cvsup-without-gui.
Ставится обычно:
1. заходим в папку
2. делаем make
3. make install
4. make clean

Дальше нам необходимо настроить конфиг файл. Файл называется cvsupfile и лежит в папке /etc. Вот приер моего файла

*default host=cvsup.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=RELENG_5_3
*default delete use-rel-suffix

src-all
*default tag=.
ports-all

Вы можете смело скопировать этот файл и использовать его.
*default host=cvsup.FreeBSD.org – адрес сервера откуда мы потащим обновления.
*default tag=RELENG_5_3 – до какой версии обновляемся
src-all – обновить исходники системы
*default tag=. – это строкой указываем до какой версии обновить порты, если укажите вместо точки, чтото другое то порты просто удалятся.
ports-all – указываем что нам надо обновить все порты.
После того как файл отредактировали под себя надо запустить обновление ситемы. Для это го надо выполнить команду:
cvsup -g -L 2 /etc/cvsupfile
и ждите пока закачаются новые исходники системы.
В моем примере, я обновляю систему до версии FreeBSD-5.3.

RELENG_4 – обновление до FreeBSD-4-Stable
RELENG_4_10 – обновление до FreeBSD-4-10
RELENG_5 – обновление до FreeBSD-5-Stable
RELENG_5_3 – обновление до FreeBSD-5-3
. – обновление до Current версии, на рабочих серверах ее этого лучше не делать. Если только вы обновляете порты, тогда нужно указать точку, иначе как в моем примере, указывать перед портами до какой версии.

После обновления идем в папку /usr/src. Все изменения версий описаны в файле UPDATING.
Дальше буду просто писать какие надо выполнять команды:
1. cd /usr/obj
2. rm -rf *
Если при удаление выдало ошибки по поводу установленных флагов, то необходимо выполнить команду
chflags -R noschg *
и потом повторить удаление.
3. cd /usr/src
Вот теперь мы собственно и начнем собирать систему:
4. make buildworld
конфигурим ядро:
5. make buildkernel KERNCONF=YOUR_KERNEL_HERE (YOUR_KERNEL_HERE – название ядра которое лежит в папке /usr/src/sys/i386/conf. Но заметьте, вы путь не указываете, а указываете только имя файла. Советую переименовать файл, чтобы скомпилилось новое ядро, а не то что было до обновления системы)
инсталируем ядро:
6. make installkernel KERNCONF=YOUR_KERNEL_HERE
7. reboot (загрузиться в single mode)
В следующем пункте будьте осторожны, здесь проверяются конфигурационные файлы и предлагается заменить файлы вашей системы файлами новой системы; оставить старые файлы; объединить. Таким макаром можео удалить всех своих пользователей, поэтому все делаем аккуратено:
8. mergemaster -p
Инсталим новую систему:
9. make installworld
И снова правим файлы:
10. mergemaster
И последняя перезагрузка
11. reboot

PS. Вот так вот и положено обновлять систему. Но есть маленькое отстепление: сервер рабочий, сервер удаленный как его в single mode перевести? Никак ;)
Поэтому при обновлении я пропускаю пункт 7 и 8 и перехожу сразу к 9 пункту.
Никаких проблем после обновления системы у меня не было, кроме одного раза, когда я по глупости не внимательно сделал mergemaster. Но сама система работала, кроме почты)).

PS2. При обновлении портов, нам как бы не очень нужны порты: китайские, японские и т.д. Поэтому мы можем не обновлять эти порты экономя трафик и время. Это достигается с помощью создания файла refuse со следующим содержанием:

ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/portuguese
ports/polish
ports/vietnamese

Файл надо положить в директорию /usr/sup

Leave a Reply