Обновление FreeBSD из исходных текстов через subversion

  1. Два варианта на выбор:

    • Установка полной версии subversion (svn) через соответствующий пакет командой:

      # pkg install subversion
      
      или, при наличии исходных текстов в /usr/ports, командами:
      # cd /usr/ports/devel/subversion
      # make clean install
      
    • Если система 10-STABLE или новее, использование далее везде предустановленной системной утилиты svnlite вместо svn



  2. Получение исходных текстов, использование утилиты svn (или svnlite, замените команду):

    1. Не забываем сохранить локальные правки в дереве исходного кода и свою конфигурацию ядра из /sys/{amd64,i386}/conf/ВАША_КОНФИГУРАЦИЯ (если такие есть).

      Создаём shell скрипт с такими строчками:

      #!/bin/sh
      # Sources
      rm -rf /usr/src
      svn co https://svn.freebsd.org/base/stable/10 /usr/src
      # Ports
      rm -rf /usr/ports
      svn co https://svn.freebsd.org/ports/head /usr/ports
      # Documentation
      rm -rf /usr/doc
      svn co https://svn.freebsd.org/doc/head /usr/doc
      

      Если вам не нужны исходные тексты документации, всю секцию Documentation комментируем.

      Если вам нужно отслеживать текущую версию разработки (CURRENT), команду svn в секции Source меняем на

      svn co https://svn.freebsd.org/base/head /usr/src
      

      Перед использованием метода https проверьте, установлен ли пакет сертификатов security/ca_root_nss, если нет, установите его командой:

      # pkg install ca_root_nss
      
      или, при наличии исходных текстов в /usr/ports, командами:
      # cd /usr/ports/security/ca_root_nss
      # make clean install
      

      Запускаем первоначальный shell-скрипт, получаем исходные тексты.

    2. После получения исходного кода смотрим файл /usr/src/UPDATING, там описаны все основные изменения от версии к версии.

    3. Последующие обновления можно получать таким shell скриптом:

      #!/bin/sh
      # Sources
      svn update /usr/src
      # Ports
      svn update /usr/ports
      # Documentation
      svn update /usr/doc
      
    4. Чтобы в дальнейшем отменять сделанные вами локальные правки перед обновлением, используйте:

      svn revert -R каталог
      
      (рекурсивно, в каталоге и подкаталогах).

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

См. также обновление через svnup.