5.8 使用源代码更新 FreeBSD

基本思路就是获取 FreeBSD 的源代码,然后进行编译安装。可以使用 git 直接拉取代码,也可以直接下载 ISO 镜像里面的 txz 压缩文件或者去 github 上下载当前 FreeBSD 项目的 zip 压缩包。

编译流程见 Handbook 即可。非常地简单。

svn 到 git 的迁移

FreeBSD 项目在 2021 年从 SVN 全面迁移到了 Git,即 https://git.freebsd.org

所以获取源代码的方式也产生了变化,不再使用 svn 了。

从 Git 获取源代码

安装 Git

# pkg install git

或者:

# cd /usr/ports/devel/git/
# make install clean

Git 代理设置方法

  • 如果使用的是 sh, bash, zsh

设置:

# git config --global http.proxy http://192.168.X.X:7890
# git config --global https.proxy http://192.168.X.X:7890

取消:

Git 拉取源代码

拉取 CURRENT

通过 FreeBSD 官方存储库拉取:

  • --depth 1:浅克隆,仅拉取最新的提交,不拉取日志及历史记录

或者通过 GitHub 拉取(GitHub 是 FreeBSD.org 上 src 的镜像,每 10 分钟同步一次)

拉取某 RELEASE

通过 FreeBSD 官方存储库拉取:

  • --branch releng/14.3:指定拉取分支(FreeBSD RELEASE 的版本)

  • --single-branch:仅克隆一个分支,除该已克隆的单一分支外不含任何其他引用(refs)。

或者通过 GitHub 拉取:

参考文献

故障排除与未竟事宜

  • Git:fatal: unable to update url base from redirection

使用 FreeBSD 源却没加 .git

Gitup

或者:

故障排除与未竟事宜

  • Git:fatal: unable to access 'https://git.FreeBSD.org/src.git/': SSL certificate problem: certificate is not yet valid

可能是时间不对造成的,同步时间:

从压缩包获取源代码(方便但非最新)

该方法比较简单快捷。

以 FreeBSD 14.3-RELASE 为例:

为何要解压到 /

因为 / 会将源代码解压到 /usr/src。如果把上面的路径改成 /usr/src,会把源代码解压到 /usr/src/usr/src。因为他这个压缩包是带路径压缩的。

技巧

如果速度慢可以切换到 https://mirrors.ustc.edu.cn/freebsd/releases/amd64/14.3-RELEASE/src.txz

开始编译

故障排除与未竟事宜

  • Conflicts remain from previous update, aborting.

需要 解决冲突

技巧

与绝大多数现代 Linux 不同,FreeBSD(OpenBSD)上的 vinvi(原版 ex/vi 的再实现),并不是指向任何 vim 的链接符号。基本上没人会用,一般亦无学习的必要,故有必要换成别的文本编辑器。

ZFS 相关升级请参见 ZFS 一节

参考资料

最后更新于

这有帮助吗?