Aktualizacja Jaila do nowego Release

Nowo wydane FreeBSD można zaktualizować binarnie poprzez narzędzie freebsd-update(8), np:

freebsd-update -r 10.2-RELEASE upgrade

Problem pojawia się, gdy po aktualizacji chcemy również zaktualizować Jaile. freebsd-update zwraca wtedy, że mamy już najnowszy system (co nie jest prawdą):

root@dns:~ # freebsd-version
10.1-RELEASE-p17

root@dns:~ # freebsd-update -r 10.2-RELEASE upgrade
freebsd-update: Cannot upgrade from 10.2-RELEASE to itself

Rozwiązaniem jest wymuszenie wartości RELEASE zwracanej przez uname(1):

root@dns:~ # uname -r
10.2-RELEASE

root@dns:~ # freebsd-version 
10.1-RELEASE-p17

root@dns:~ # setenv UNAME_r `freebsd-version`
            
root@dns:~ # uname -r
10.1-RELEASE-p17

Po czym możemy aktualizować system:

root@dns:~ # freebsd-update -r 10.2-RELEASE upgrade     
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 10.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/lib32

The following components of FreeBSD do not seem to be installed:
src/src world/doc world/games

Does this look reasonable (y/n)?

Więcej informacji na temat zmiennych uname dostępnych tutaj: uname(3)

Update

Począwszy od FreeBSD 10.3 jest jeszcze łatwiej. Aktualizację starego jaila do nowego systemu wykonujemy tak:

freebsd-update --currently-running 10.3-RELEASE -r 11.0-RELEASE upgrade
freebsd-update install
freebsd-update install
pkg-static install -f pkg
pkg upgrade
freebsd-update install