Для обновления системы 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 RELENG_6 - обновление до FreeBSD-6-Stable . - обновление до 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 Желаю удачи в обновлении вашей системы.