> Я так и не понял чем лучше обновляться, варианты различные имеются... И
> в RELENG понять не могу что прописывать.... RELENG_9 или RELENG_9_1 у
> 9.1-RELEASE-p3.ну тогда по порядку, есть два варианта обновления:
1) традиционное: обновление sources и сборка мира и ядра
2) бинарное: freebsd-update
начнем с последнего, так сказать нового веяния: бинарное обновление
DESCRIPTION
The freebsd-update tool is used to fetch, install, and rollback binary
updates to the FreeBSD base system. Note that updates are only available
if they are being built for the FreeBSD release and architecture being
used; in particular, the FreeBSD Security Team only builds updates for
releases shipped in binary form by the FreeBSD Release Engineering Team,
e.g., FreeBSD 7.3-RELEASE and FreeBSD 8.0-RELEASE, but not FreeBSD
6.3-STABLE or FreeBSD 9.0-CURRENT.
freebsd-update используется для скачивания, установки и отката бинарных обновлений
базовой системы FreeBSD. (отмечу ключевое слово БАЗОВОЙ, остальное понятно)
Отметим что апдейты доступны только для РЕЛИЗОВ FreeBSD соответствующей архитектуры.
FreeBSD создает апдейты только для релизов: FreeBSD 7.3-RELEASE, FreeBSD 8.0-RELEASE
и тд, НО НЕ для FreeBSD 6.3-STABLE или FreeBSD 9.0-CURRENT.
Вот и все, можно скачать, установить и если что-то не так, выполнить откат, с последним
может много геморроя, если что-то не так.
Верхнее - что мы получаем: а-ля установку поверх, ядро GENERIC, стандартные настройки
или их отсутствие и тд и тп.
Важное: я не вижу способа контролировать бинарный апдейт, но в соответствии со здравым
смыслом - контроль и не нужен в случае если данный апдейт работает как часы.
Вот с этим - как часы, сложней.
способ традиционный:
- апдейт sources и сборка и установка нового ядра и мира
sources можно было проапдейтить разными вариантами:
- скачать по ftp, получить через ctm и тд и тп
однако самое удобное было:
- cvs/cvsup (устарело и возможно уже полностью выведено из строя из-за перехода на svn)
- svn (subversion)
в cvs использовались теги:
тег = HEAD или точка "." (кавычки неиспользуются, чтобы было понятно что символ точка)
- данный тег означает Current, текущая, указывает на ВЕТКУ Current.
теги РЕЛИЗОВ, задаются как:
тег = RELENG_X_Y_Z_RELEASE, например: RELENG_9_1_0_RELEASE, RELENG_8_3_0_RELEASE,
RELENG_7_4_0_RELEASE, RELENG_6_2_0_RELEASE, RELENG_6_0_0_RELEASE
как видно, теги релизов очень четкие и просто отличаются от тегов веток и патчей.
Вернемся к тегам веток, выше мы рассмотрели тег для Current - он прост, теперь для
веток Stable:
tag=RELENG_X - где X номер ветки, примеры:
RELENG_9 - тег для 9-Stable
RELENG_8 - тег для 8-Stable
RELENG_7 - тег для 7-Stable
и так далее
Ну и подошли к самому важному, тег для security and bug fixes, патчевый тег для релизов!
tag=RELENG_X_Y - где X - ветка, Y - минор релиза. Чтобы было понятно, посмотрим примеры:
установили FreeBSD 8.2-RELEASE, тег для релиза RELENG_8_2_0_RELEASE, а тег для патчей
к этому релизу RELENG_8_2.
Те откусили от тега релиза "_0_RELEASE"
Значит тег для патчей 9.1-RELEASE - будет RELENG_9_1
Более доступно и понятно я изложить не смогу.
Вспомним что cvs и cvsup - deprecated, устарело и возможно сейчас уже недоступно.
На смену cvs/cvsup пришела система subversion.
И тут ничего сложного:
# svn list svn://svn.freebsd.org/base
ROADMAP.txt
cvs2svn/
head/
projects/
release/
releng/
stable/
svnadmin/
user/
vendor/
vendor-crypto/
vendor-sys/
#
из верхнего выделим ключевые слова:
- head - это ветка current-текущая
- release - это релизы
- releng - это патчи для релизов
- stable - это ветки stable
все, ничего сложного. Ну а для наглядности посмотрим релизы и патчи для них:
# svn list svn://svn.freebsd.org/base/release
2.0/
2.0.5/
2.1.0/
2.1.5/
...
...
8.4.0/
9.0.0/
9.1.0/
#
если хотим скачать sources релизов:
# svn co svn://svn.freebsd.org/base/release/X.Y.Z [/path]
где [/path] - куда, если отсутствует то в том месте где стоим, например
# rm -rf /usr/src/*
# svn co svn://svn.freebsd.org/base/release/9.1.0 /usr/src
или
# mkdir /usr/local/mysrc
# cd /usr/local/mysrc
# svn co svn://svn.freebsd.org/base/release/8.2.0
# svn co svn://svn.freebsd.org/base/release/4.6.2
патчи к релизам, ну посмотрим для начала list для них:
# svn list svn://svn.freebsd.org/base/releng
2.0.5/
4.10/
4.11/
...
...
...
9.0/
9.1/
ALPHA_2_0/
BETA_2_0/
#
если нам нужны патчи для 9.1:
# cd /usr/src
# svn co svn://svn.freebsd.org/base/releng/9.1
ну а если нам нужна stable ветка, посмотрим снова list для страховки и все вспомним
# svn list svn://svn.freebsd.org/base/stable
2.0.5/
2.1/
2.2/
3/
4/
5/
6/
7/
8/
9/
#
если нам нужна 9-Stable:
# svn co svn://svn.freebsd.org/base/stable/9
вроде просто и понятно, даже если забыл, проще, понятней и чтоб запомнилось - не смогу.
Сборку описывать не буду, она есть в:
# less /usr/src/Makefile
# less /usr/src/UPDATING
Ну а какой способ из двух - каждый решает для себя сам.