deepseek说
取消pkgbase没有官方的“一键转换”按钮,操作需要谨慎,因为核心系统文件目前是由pkg管理的。目前社区主要有两种方法,推荐第一种(官方命令),更安全。
✅ 方法一:使用pkg unregister(推荐)
如果你的pkg版本在2.5.0 或更新,可以直接用这个命令取消注册所有基础系统包,保留文件不动:
pkg unregister --force --glob 'FreeBSD-*'或者用更明确的写法:
pkg unregister -fg FreeBSD-\*执行后,系统文件本身还在,但pkg数据库里不再记录它们,这样你就“脱离”了pkgbase的管理,可以恢复用freebsd-update或源码更新。
⚠️ 方法二:直接删除数据库记录(备选)
如果pkg版本较老,或者unregister命令不可用,可以安装sqlite3后直接操作数据库:
pkg install -Ay sqlite3 sqlite3 /var/db/pkg/local.sqlite "delete from packages where origin like 'base/%';"这个操作只删除pkgbase相关记录,不会动其他通过 ports 安装的软件。
🧹 后续清理步骤
取消注册后,建议做两件事:
恢复
freebsd-update的配置环境(如果之前用过pkgbase):etcupdate extract删除不再需要的
pkgbase缓存和仓库配置(可选,释放空间):rm -f /var/cache/pkg/FreeBSD-*.pkg rm /usr/local/etc/pkg/repos/FreeBSD.conf rm -rf /var/db/pkg/repos/FreeBSD-base
⚠️ 重要警告
绝对不要使用pkg delete来删除FreeBSD-*包,也千万不要运行pkg delete -af。在pkgbase系统中,这些命令会直接删掉运行中的内核和libc,导致系统瞬间崩溃、无法开机。用unregister而不是delete,是安全取消pkgbase的关键。
实践
用这条命令
pkg unregister -fg FreeBSD-\*看到删除了大量东西.估计这样就算ok了