Итак приступим…
# cd /usr/src/ # make -j4 buildworld |
Построение мира занимает много времени, поэтому запаситесь пивом и терпением. Обратите также внимание на то, что запуск был сделан с ключем -j4 (сборка в несколько потоков), что должно ускорить процесс сборки.
Итак… Свершилось чудо:
————————————————————— >>> World build completed on Sat Aug 8 03:48:39 EEST 2009 ————————————————————— |
Теперь можно приступать к сборке и установки ядра. Пропускать эти шаги НЕЛЬЗЯ, даже мотивируя тем, что «я когда-то уже собирал ядро…»
Чтобы запустить сборку со стандартным ядром GENERIC, достаточно набрать «make kernel» в директории «/usr/src». Ну а поскольку мы легких путей не ищем, то будем собирать свой вариант ядра.
Для начала скопируем стандартный конфиг ядра в свой:
# cp /usr/src/sys/amd64/conf/GENERIC /usr/src/sys/amd64/conf/Web0 |
Обратите внимание на «amd64» – это платформа в моем частном случае. В вашем случае может отличаться. Чтобы определить какая у вас платформа, воспользуйтесь командой «uname –a»
Приступим к редактированию созданного нами файла:
# ee /usr/src/sys/amd64/conf/Web0 |
Не буду расписывать каждую опцию, а приведу только свой конфиг (документации по сборке ядра более чем достаточно, возможно даже будет частично доступна на этом ресурсе)
# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.484.2.21 2009/07/15 08:32:19 ed Exp $
cpu HAMMER options SCHED_ULE # ULE scheduler # Make an SMP-capable kernel by default # CPU frequency control # Bus support. # ATA and ATAPI devices # atkbdc0 controls both the keyboard and the PS/2 mouse device vga # VGA video card driver device splash # Splash screen and screen saver support # syscons is the default console driver, resembling an SCO console # PCI Ethernet NICs that use the common MII bus controller code. # Pseudo devices. # The `bpf’ device enables the Berkeley Packet Filter. # My options |
Исходя из «/usr/src/Makefile», шаги 3 и 4 можно совместить в одну команду, что мы и делаем:
# make kernel KERNCONF=Web0 |
Если процесс сборки и установки ядра прошел без ошибок, пускаем сервер в ребут:
# shutdown -r now |
Если никаких ошибок не допустили, то через некоторое время, необходимое серверу для перезагрузки, можно опять приконектиться к серверу и продолжить начатое.
Если же ядро почему-то не загрузилось, то вам сюда:
http://www.freebsd.org/doc/ru/books/handbook/kernelconfig-trouble.html
Теперь начинаются различия обновления локального и удаленного серверов. Рассмотрим два этих варианта:
Локальный сервер
Для безопасного и корректного обновления необходимо ввести машину в single mode:
Перезагрузкой и выбором в стартовом меню загрузку в single user mode (номер 4).
# shutdown -r now |
Удаленный сервер
Вам необходимо отключить в /etc/rc.conf все службы, в которых нет необходимости для запуска системы (sshd не выключать!). Это СУРБД, FTP, Apache и т.д. и перезагрузится. Можно и самим остановить эти службы без перезагрузки системы.
Продолжаем обновление
При запуске системы, если это локальный сервер, необходимо смонтировать корневой каталог и остальные разделы. А так же запустим mergemaster для создания начальной точки работы:
# /sbin/mount -u / # /sbin/mount -a # su # mergemaster –p |
Установим мир.
# cd /usr/src # make installworld |
Запустим mergemaster для синхронизации файлов, библиотек, конфигурационных файлов с новыми версиями.
# mergemaster -cv |
(c-контекстный diffs вместо унифицированного)
mergemaster сравнивает существующие конфигурационные файлы с теми, которые предлагаются новой версией FreeBSD. И если существуют отличия, то появляется сообщение об этом. Первой строкой в нем идет имя файла, который не соответствует новым требованиям, а ниже сами отличия.
Знаки:
— — этим знаком помечаются строки, которые mergemaster собирается удалить.
+ — этим знаком помечаются строки, которые будут добавлены.
Есть несколько вариантов управления и в низу mergemaster предлагают следующие варианты работы с текущим файлом:
d — удалить предлагаемый вариант оставить старый.
i — установить предлагаемый вариант, удалив старый.
m — сравнить и объединить при необходимости построчно старый и новый вариант.
v — посмотреть отличия в файлах снова.
При построчном сравнивании экран делится на две части, слева строки из старого файла, а справа из предлагаемого. При нажатии на «Enter» выводятся возможные варианты последующих действий:
l — использовать вариант с левой стороны.
r — использовать вариант с правой стороны.
и т.д. После того как сравнение файла закончилось, предлагаются следующие варианты:
i — установить получившийся файл.
r — повторить сравнение снова.
v — просмотреть получившийся файл.
Бывает, что с новой версией системы появляются новые файлы, которых до этого не было. В таком случае предлагается 2 варианта:
d — удалить предлагаемый вариант и оставить старый.
i — установить предлагаемый вариант, удалив старый.
И так сравниваются все файлы.
В конце mergemaster предложить удалить все, что осталось в /var/tmp/temproot – соглашаемся («yes»), а также, напоследок, обновить базу aliases – соглашаемся («yes»).
Закончив с mergemaster, перезапускаем систему и удаляем старые библиотеки.
# shutdown -r now # cd /usr/src/ # make delete-old-libs |
Проверяем версию системы:
# uname -aFreeBSD web0.domain.ua 7.2-STABLE FreeBSD 7.2-STABLE #0: Sat Aug 8 04:58:58 EEST 2009 [email protected]:/usr/obj/usr/src/sys/Web0 amd64 |
Теперь осталось еще закачать новые версии портов…
# csup -g -L 2 /etc/csup/ports-all |
Shutting down connection to server Finished successfully |
Порты установлены. Можно приступать к установке софта.
Источник : muff.kiev.ua/node/16