第 11.4 节 使用 pkgbase 更新

现在 FreeBSD 的系统更新与第三方软件更新的分离的(现在使用 freebsd-update),pkgbase 是目的就是将其合并起来统一使用 pkg 命令管理。但是现在只有一级架构的 RELEASE 才有 freebsd-update 可用,也就是说 current 等系统只能靠拉取源码自己编译的方式来更新,可以说非常麻烦了。pkgbase 早在 2016 年就有了,原计划在 FreeBSD 14 就进入系统替代 freebsd-update,但是现在推迟到了 15。

现成的服务器(仅供测试)【好像跑路了】

严重警告

该工具会 清空 系统原有配置,包括不限于 sshd、清空用户,清空 root 密码等。

# mkdir -p /usr/local/etc/pkg/repos/
# ee  /usr/local/etc/pkg/repos/base.conf
  • 13.2 RELEASE 写入:

# FreeBSD pkgbase repo

FreeBSD-base: {
  url: "https://alpha.pkgbase.live/release/13.2/${ABI}/latest",
  signature_type: "pubkey",
  pubkey: "/usr/local/etc/pkg/keys/alpha.pkgbase.live.pub",
  enabled: yes
}
  • CURRENT 写入

# FreeBSD pkgbase repo

FreeBSD-base: {
  url: "https://alpha.pkgbase.live/current/${ABI}/latest",
  signature_type: "pubkey",
  pubkey: "/usr/local/etc/pkg/keys/alpha.pkgbase.live.pub",
  enabled: yes
}

导入密钥:

# mkdir -p /usr/local/etc/pkg/keys/ 
# fetch --output=/usr/local/etc/pkg/keys/alpha.pkgbase.live.pub https://alpha.pkgbase.live/alpha.pkgbase.live.pub

注意设置代理,要设置 https_proxy 而不是 http_proxy。

更新系统:

# pkg update -r FreeBSD-base
# pkg install -g 'FreeBSD-*'

即可。

严重警告

该工具会 清空 系统原有配置,包括不限于 sshd、清空用户,清空 root 密码等。

参考文献

最后更新于