|
|
Роемся в конфигах | Пересборка ядра FreeBSD |
|
студия Геннадия Циколия продвижение сайтов Волгоград т. 8 (8442) 982598
|
Обновление системы FreeBSD 6.2 до версии 6.3
# uname-a FreeBSD daemony.home 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Tue Jan 29 17:32:13 EET 2008 root@daemony.home:/usr/obj/usr/src/sys/DAEMONY i386

Обсудить тему на форуме
Обновил на домашнем сервере операционную систему. Думаю, стоит черкнуть по этому поводу пару строк в блоге. На самом деле, сложностей никаких нет. Самое главное, для успокоения души, сделать все необходимые бекапы. Мало ли… Вдруг что-то пойдет не так.
Начнем с того, что обновим все дополнительные пакеты, установленные в системе. Сделать это можно посредством программы portupgrade. После того как все обновили, приступим к созданию бекапных копий. Как это делается написано в статье о переносе FreeBSD на другой жесткий диск.. Когда бекап системы окончен и сохранен в надежном месте, займемся обновлением исходных кодов системы. Для этого воспользуемся утилитой CVSup. Подробно об использовании CVSup можно почитать здесь.
Создаем supfile приблизительно такого вида:
daemony# cat /root/cvsup/src-all # # FreeBSD system source supfile by Daemony # *default host=cvsup7.ua.FreeBSD.org *default base=/var/db *default prefix=/usr *default release=cvs tag=RELENG_6_3_0_RELEASE *default delete use-rel-suffix *default compress src-all
И далее запускаем процесс обновления исходных кодов.
daemony# cvsup -g -L 2 /root/cvsup/src-all Parsing supfile “/root/cvsup/src-all” Connecting to cvsup7.ua.FreeBSD.org Connected to cvsup7.ua.FreeBSD.org Server software version: SNAP_16_1h Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running …
и процесс пошел. После того, как увидим сообщение “Успешно завершено”, можно приступить к самому главному. Кстати, если это не критично, можно перед началом процесса обновления отключить все дополнительно используемые сервисы, такие как web сервер, почта, прокси и так далее. Как правило, от этого выигрываем в экономии системных ресурсов. Я обычно тоже отключаб все, кроме того, что необходимо для работы системы и удаленного доступа к ней.
Запускаем процесс компиляции системы:
daemony# cd /usr/src daemony# make buildworld daemony# make buildkernel KERNCONF=MYKERNEL daemony# make installkernel KERNCONF=MYKERNEL daemony# shutdown -p now
Процесс комиляции системы и ядра (процессор AMD Athlon(tm) XP 1900+ [1595.47-MHz 686-class CPU]) занял у меня чуть меньше двух часов. А после этого пришлось подключить к серверной машинке клавиатуру и монитор, для того, чтобы можно было запуститься в однопользовательском режиме.
Включаем машину. При появлении загрузчика с вариантами нажимаем циферку “6″ и в командную строку вводим:
boot -s
Система загружается и после того, как вылезет приглашение командной оболочки, перемонтируем корневую файловую систему в режиме чтения/записи и смонтируем остальные, потому что по-умолчанию монтируется только / да и то в режиме read-only.
# /sbin/mount -rwu /dev/ad0s1a / # /sbin/mount -a -F /etc/fstab
Последней командой монтируются все файловые системы, прописанные в файле /etc/fstab. После этого необходимо выполнить:
# /usr/sbin/mergemaster -p # /usr/bin/make installworld # /usr/sbin/mergemaster # /sbin/shutdown -r now
Процесс инсталяции “мира” прошел за 10 минут. Проверяем, что поменялось в системе, где и какие нужно внести изменения в конфиги после выполнения команды mergemaster (обратите внимание на папку /var/tmp/temproot). Эта команда сравнивает существующие конфигурационные файлы с теми, которые собирается установить. Обо всех различиях программа сообщает на экране. В начале сообщения указывается имя файла, в котором есть различия от “стандарта”, а ниже собственно сами различия. “Минусом” помечаются строки, которые будут удалены, а “плюсом” - которые будут добавлены. Программа предлагает варианты действий со стороны пользователя:
- d - оставить существующий файл без изменений, а новый удалить
- i - установить новый файл, переписав старый
- m - построчно сравнить существующий и новый файлы
- v - просмотреть различия в файлах еще раз
Чаще всего можно нажимать “i”, но это может обернуться тем, что Вы потеряете свои конфиги, точнее вместо своих конфигов получите дефолтные. Потому, если не уверены в отношении какого-либо файла, нажимайте “m”. В этом режиме программа покажет Вам построчно оба файла: слева будет показана версия старого файла, справа - нового. При нажатии на Enter, программа спросит о действии:
- l - использовать файл с левой стороны
- r - использовать файл с правой стороны
После того, как программа закончит сравнение она снова спросит:
- i - установить получившийся файл
- r - повторить сравнение снова
- v - просмотреть получившийся файл
Бывает также, что с новой версией операционной системы появляются новые файлы, которых до этого не существовало. В таком случае программа предлагает только два варианта:
- d - удалить новый файл и оставить старый
- i - установить новый файл, удалив старый
Таким же образом сравниются все остальные файлы.
Напоследок, стоит произвести “чистку” - удалить старые неактуальные более файлы и библиотеки:
daemony# make delete-old >>> Removing old files (only deletes safe to delete libs) remove /usr/share/info/bzip2.info.gz? y remove /usr/share/examples/netgraph/bluetooth/rc.bluetooth? y remove /usr/share/man/man4/kame.4.gz? y remove /usr/share/man/man3/archive_write_prepare.3.gz? y remove /usr/share/man/man4/uhidev.4.gz? y remove /etc/periodic/weekly/120.clean-kvmdb? y remove /usr/include/c++/3.4/ext/demangle.h? y remove /usr/share/man/cat3/archive_write_prepare.3.gz? y remove /usr/share/man/cat4/kame.4.gz? y remove /usr/share/man/cat4/uhidev.4.gz? y >>> Old files removed >>> Removing old directories >>> Old directories removed To remove old libraries run ‘make delete-old-libs’.
И дальше:
daemony# make delete-old-libs >>> Removing old libraries Please be sure no application still uses those libraries, else you can not start such an application. Consult UPDATING for more information regarding how to cope with the removal/revision bump of a specific library. remove /lib/libc.so.5? y remove /lib/libcrypto.so.3? y remove /lib/libz.so.2? y remove /usr/lib/librpcsvc.so.2? y remove /usr/lib/libssl.so.3? y >>> Old libraries removed
Вот и все. Перезагружаемся. Все получилось? Не вылезло никаких граблей? Поздравляю!
Вы обновили свою FreeBSD систему до версии 6.3.
Ключевые слова
buildkernel | buildworld | FreeBSD | freebsd 6.3 | installkernel | installworld | KERNCONF | make | mergemaster -p | unix | компиляция | настройка | обновление | пересборка | сервер | установка


