Проект переехал на новый домен!  [[ перейти ]]

make world - пересбока системы.
(Обычно нужно пересобрать мир когда обновляем систему до более новой 
версии, например переход с 5.4 до 6.2 или текущего 7.0)

В данный момент я решил обновится до версии CURRENT и я совсем
не уверен что мне будет счастье, но тем не менее...
В текущем состоянии моя система 6.2-p9 пологаю получить 7.0!

http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/makeworld.html
Для поддержки системы в актуальном состоянии нужно переодически 
нужно читать содирдимое вот этого файла: 
sh# cat /usr/src/UPDATING | less

Ну и для актуальности ПО не мешает читать тут:
sh# cat /usr/ports/UPDATING | less

Собственно я через cvsup утянул последни доуступные исходники и
приступил к пересборке мира. (Ужасно звучит!)

Из хендбука ясно видно что вся сборка укладывается в несколько
действий:
sh# make buildworld
sh# make buildkernel
sh# make installkernel
sh# reboot
После перезагрузки идём в однопользовательский режим:
sh# boot -s
sh# mergemaster -p
sh# make installworld
sh# mergemaster
sh# reboot

Но это уж очень примитивно и ужато. Я собираюсь немного расширить
пересборку своей системы. Например собрать своё ядро а не ядро
по-умолчанию...

Начу с того что если что-то пойдёт не так, то сделаем следущее:
sh# cd /usr/obj
sh# rm -r usr
sh# cd /usr/src
sh# make cleandir
sh# make cleandir
После вот такой вот чистики можно попробовать снова пересобрать!

Собственно ещё важно чем собирать!
Всё что можно добавить смотрим тут:
sh# cat /usr/share/examples/etc/make.conf

И добавляем в /etc/make.conf
Вот мой make.conf:
sh# cat make.conf
=====================================
PERL_VER=5.8.8
PERL_VERSION=5.8.8

CPUTYPE?=pentium4
CFLAGS= -O -pipe

NO_CPU_CFLAGS=false
NO_CPU_COPTFLAGS=false

NO_INET6=true
NO_PROFILE=true
NO_SENDMAIL=true

MAKE_SHELL?=sh

DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R
=====================================

Дальше переходим в каталог:
sh# cd /usr/src

И запускаем:
sh# mergemaster

из Хендбука:
Для чего нужен mergemaster? Эта утилита создаёт каталог и строит временное окружение 
для пользователя root, начиная от /, а затем заполняет его различными системными 
конфигурационными файлами. Эти файлы затем будут сравниваться с теми, что установлены 
в вашей системе. В этот момент файлы, которые имеют отличия, будут выданы в формате 
diff (diff - утилита для сравнения двух файлов).

Начинаем сравнивать:
sh# mergemaster -p

И после начинаем сборку, где указываем 4 потока 
(на машинах с двумя процами можно больше указать 6 или 10)
sh# make -j4 buildworld

Сделаем своё ядро:
sh# cd /usr/src/sys/i386/conf
sh# cp GENERIC KRNL280108
sh# ee KRNL280108
После редактирования сохраняем и...

Дальше я указываю поправленое мною ядро!
Даю комманду построить и установить...
sh# make -j4 buildkernel KERNCONF=KRNL280108
sh# make installkernel KERNCONF=KRNL280108
sh# reboot
--------------------------------------------------------------
При make installkernel или installworld -j указывать не нужно!
--------------------------------------------------------------

Далее перегружаем машину и переходим в рлнопользовательский режим:
boot -s

sh# fsck			; проверяем диск
sh# mount -u /			; монтируем корневую систему
sh# mount -a			; монтируем всё остальное из /etc/fstab
sh# mergemaster -p		; сверяемся
sh# cd /usr/src			; переходим 
sh# make installworld		; инсталируем
sh# mergemaster			; устанавливаем
sh# reboot			; перезапуск

Если всё получилось загружаемся нормально:
Смотрим результат:
sh# uname -a

И удаляем излишки производства: 
sh# cd /usr/obj
sh# rm -r usr