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)
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