我试图在 FreeBSD 10.2 系统上安装 bash,请参阅如何在 FreeBSD 上安装 bash
但是安装失败了,因为 pkg 试图从一个太新的存储库中获取。
然后我尝试按照https://glasz.org/sheeplog/2017/02/freebsd-usrlocalliblibpkgso3-undefined-symbol-utimensat.html上的食谱进行操作,一些消息人士称这是正确的做法。
但是,部分方法涉及卸载 pkg 并重新安装它。结果如下:
# pkg install -y pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from
pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/release_2, please
wait...
Verifying signature with trusted certificate
pkg.freebsd.org.2013102301... done
pkg-static: warning: database version 34 is newer than libpkg(3)
version 31, but still compatible
pkg-static: sqlite error while executing INSERT OR ROLLBACK INTO
pkg_search(id, name, origin) VALUES (?1, ?2 || '-' || ?3, ?4); in
file pkgdb.c:1542: no such table: pkg_search
所以现在我被困住了。谁能告诉我如何从这种状态中恢复过来?
您可以尝试删除
/var/db/pkg/
目录中的所有内容,但正确的解决方案是升级到受支持的 FreeBSD 版本(10.4 或 11.2)我最近遇到了类似的症状(为可读性添加了换行符):
我专注于错误消息的这一部分:
在我的具体情况下,我能够通过以下方式解决我的问题:
从 2017 年 1 月开始,此线程中提到了该特定 SQL 查询。
在那个 SQL 咒语之后,它
pkg
再次起作用,我能够升级到最新版本,pkg
然后升级或重新安装其余的包。这是从 10.x 到 12.x 的迁移,所以在升级后pkg
我做pkg upgrade -f
了所有事情,并且没有更多的警告或sqlite3
错误: