Переход с cvsup на subversion для обновления FreeBSD

subversion svn freebsd vulnerabilities cvsup

Переход с cvsup на subversion для обновления FreeBSD

С 28 февраля 2013 года поддержка cvs будет прекращена. Использовать subversion для обновления FreeBSD удобнее и практичнее.

Для начала надо установить subversion клиента.

# cd /usr/ports/devel/subversion
# make install clean
Если не идет с сообщением, что порт содержит уязвимости:
Type of problem: Subversion -- multiple vulnerabilities.
#make -D DISABLE_VULNERABILITIES

Если svn уже был установлен, но Вы не знаете, какой механизм обновления используется в данный момент на сервере, то можно проверить так:

# cd /usr/ports

# svn update

Если ответ бедет примерно таким:

svn: E155036: Please see the ‘svn upgrade’ command

svn: E155036: The working copy at ‘/usr/ports’

is too old format 29 to work with client version ‘1.8.3 r1516576expects format 31. You need to upgrade the working copy first.

значит используется старая схема в помощью csvup.

Затем рекомендую переименовать папки /usr/src и /usr/ports

# mv /usr/src /usr/src.old

# mv /usr/ports /usr/ports.old

Клонирование дерева портов осуществляем командой:

# svn co svn://svn.FreeBSD.org/ports/head /usr/ports
Процесс довольно длительный (около 20 минут на выделенном сервере средней производительности) - можно отвлечься на другие задачи.

Для скачивания исходных кодов мира и ядра нужно выполнить:

# svn co svn://svn.freebsd.org/base/releng/9.1/ /usr/src
Для полного счастья можно еще и документацию обновить:

# svn checkout https://svn.freebsd.org/doc/head /usr/doc

Цифры после releng задают вашу рабочую версию ОС. В данном примере мы скачиваем ветку релиза 9.1 (releng/9.1/).Все существующие ветки можно просмотреть через веб-интерфейс для svn по адресу: http://svnweb.freebsd.org.Если сеть настроена через прокси-сервер или svn протокол закрыт фаерволлом, то можно заменить протокол svn на http или https (см. последний пример).
Для дальнейшего периодического обновления исходных кодов и портов необходимо командой svn update:
# cd /usr/src
# svn update
# cd /usr/ports
# svn update

Дополнительно можно установить pkg_trackinst

/usr/ports/ports-mgmt/pkg_trackinst


Если возникла необходимость срочно обновиться по-старому, то поступаем следующим образом:

# cd /usr/src

# make update SVN_UPDATE=yes

...................................................
Скрипт обновления:

svn co svn://svn.freebsd.org/ports/head /usr/ports

svn co svn://svn.freebsd.org/base/releng/9.1/ /usr/src