Дальнейшие действия после получения исходных текстов FreeBSD

  1. После получения исходных текстов (см. svn, svnup, csup) компилируем новую систему.

    1. Для добавления новых изменений в конфигурационные файлы в каталоге /etc, необходимые для сборки ядра и утилит (например, в /etc/make.conf) необходима синхронизация при помощи mergemaster(8):

      # mergemaster -pivU
      

      Нужно внимательно смотреть, что mergemaster предлагает сделать с тем или иным конфигом, и выбирать устраивающий вас вариант действий.

      • d - оставить старый вариант файла, удалив новый;

      • i - установить новый, удалив старый;

      • m - построчное сравнение старого и нового файла;

      • v - сравнить файлы еще раз.

      При выборе построчного сравнения, на экран быдут выведены обе версии файла, слева - содержимое старого файла, справа - нового. Возможные варианты действий:

      • l - использовать вариант слева, то есть старый;

      • r - использовать вариант справа, то есть новый.

      Имейте в виду, простая установка свежих версий конфигов не всегда является тем, что вам нужно, поскольку в процессе работы вы могли настраивать какие-то конфиги под свои нужды и, выбрав установку новой версии файла, все изменения в старом файле будут утеряны.

    2. Теперь необходимо выполнить команды:

      # cd /usr/obj
      # chflags -R noschg *
      # rm -rf *
      # cd /usr/src
      
    3. Собираем и устанавливаем утилиты:

      # make world
      
    4. Удаляем устаревшее: утилиты, исходный текст и документацию:

      # make delete-old
      
    5. Собираем и устанавливаем ядро:

      # make kernel KERNCONF=ВАША_КОНФИГУРАЦИЯ
      
      ВАША_КОНФИГУРАЦИЯ - конфигурация вашего ядра, которую нужно положить в каталог /usr/src/sys/{amd64,i386}/conf. Если у вас нет такой, не указывайте параметр KERNCONF - соберётся ядро конфигурации GENERIC, покрывающее большинство машин, и, вследствие этого, содержащее много лишнего.

  2. Для добавления изменений во все конфигурационные файлы в каталоге /etc необходима ещё одна синхронизация при помощи mergemaster(8) (см. примечание выше):

    # mergemaster -ivU
    
  3. Перезагрузка:

    # shutdown -r now