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