在 FreeBSD 6.2-RELEASE 环境下,使用 freebsd-update 工具进行系统升级,整个过程比预想中更为简便。首先,我们可以查看当前的系统版本信息:
mail#uname -a
FreeBSD mail.extmail.org 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Nov 2 13:04:30 UTC 2007 qiao@qiao.lpzq:/usr/src/sys/i386/compile/kernel_IPFW i386
接着直接输入以下命令:
mail#freebsd-update fetch install
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching public key from update1.FreeBSD.org... done.
Fetching metadata signature from update1.FreeBSD.org... done.
Fetching metadata index...done.
至此,FreeBSD 的二进制升级便顺利完成。系统中核心的用户态组件、关键库文件以及基本工具都会被自动更新至最新的发布版本。
不过你可能会疑惑:为什么执行完 freebsd-update 之后,通过 uname -a 查看系统版本时,显示的信息依然没有改变?答案其实很简单——uname 反映的是内核层面的版本号,而 freebsd-update 默认不会修改系统内核(内核需要单独处理)。所以系统其实已经完成了升级,只是从内核视角看不到变化。要想让 uname -a 也能输出新的版本号,还需要手动编译并安装新内核:
mail#cd /usr/src
mail#make buildkernel KERNCONF=YOURKERNEL
mail#make installkernel KERNCONF=YOURKERNEL
mail#reboot
重启之后,uname -a 显示的版本信息就会与系统实际更新后的版本完全一致。当然,如果你所使用的内核配置(KERNCONF)与默认配置相同,也可以直接使用 make buildkernel KERNCONF=GENERIC。虽然步骤并不复杂,但请务必在重启前确认所有服务已经妥善保存。
