FreeBSD 15 STABLE更新和升级到RELEASE
我为了能够 FreeBSD 15环境bhyve中实现NVIDIA GPU passthrough ,在9月中旬FreeBSD 15处于Alpha 1阶段时安装了这个最新版本。之后,由于非RELEASE版本都需要从源代码编译升级,所以在 FreeBSD 15 Alphas更新和升级 过程中,我始终在STABLE分支的源代码编译升级。
2025年12月2日,FreeBSD终于发布了 15.0-RELEASE 版本,所以我需要将当前的非发布分支 STABLE 切换升级到 RELEASE
注意,由于非
RELEASE分支,不能使用 FreeBSD更新和升级 中freebsd-update命令,例如freebsd-update fetch会提示错误:
freebsd-update 会提示错误freebsd-update: Cannot upgrade from a version that is not a release
(including alpha, beta and release candidates)
using freebsd-update. Instead, FreeBSD can be directly
upgraded by source or upgraded to a RELEASE/RELENG version
prior to running freebsd-update.
Currently running: 15.0-STABLE
需要将当前STABLE分支切换到RELEASE分支 ,参考 Updating the Source 可以看到有3个分支:
|
仓库路径 |
说明 |
|---|---|---|
|
|
Release版本加上critical security and bug fix patches,该分支适合大多数用户 |
|
|
STABLE表示Applications Binary Interface (ABI)稳定不变,这样早期版本上编译的软件依然可以运行,该分支可以能会不兼容但是修复极快 |
|
|
最新的未发布开发版本,该分支会有bug和不兼容,所以仅适合资深用户 |
将当前
STABLE源代码分支切换到releng/15.0:
releng/15.0git checkout releng/15.0
git pull
编译内核以及userland(world):
# 步骤1: 清除旧objects并构建 "world" (userland)
sudo make -j$(sysctl -n kern.smp.cpus) buildworld
# 步骤2: 构建内核
sudo make -j$(sysctl -n kern.smp.cpus) buildkernel
# 步骤3: 安装新内核
sudo make installkernel
# 步骤4: 重启到新内核,然后在安装新的 "world"
sudo shutdown -r now
# 步骤5: 在installworld之前更新和合并配置
etcupdate -p
# 重启以后,登陆系统并继续完成安装world
sudo make installworld
# 更新和合并 etc 配置
etcupdate -B
# 再次重启
sudo shutdown -r now
升级完成后,需要确保
/etc目录下配置文件更新为符合新的upserspace:
/etc 目录下配置etcupdate
检查新版本不需要的文件并删除:
cd /usr/src
make check-old
make delete-old
make check-old-libs
make delete-old-libs
最后检查
uname -r可以看到系统已经是15.0-RELEASE,此时就能够实现通过freebsd-update完成 FreeBSD更新和升级