在尝试将 pfSense 2.2.6 升级到最新版本时(如所述这里)并运行pkg
,我得到:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:
回答“是”后,我得到:
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.10.5...
Newer FreeBSD version for package pkg:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1003000
- running kernel: 1001000
Allow missmatch now?[Y/n]:
我决定冒险并回答“是”。最终,安装结束并出现错误消息:
/usr/local/lib/libpkg.so.4: Undefined symbol "openat"
这大概意味着pkg
我得到的版本确实与我的系统不兼容。不幸的是,每次进一步尝试运行pkg
都会产生相同的错误。
如何再次摆脱不兼容的pkg
版本,以及如何在我的 pfSense 上获得与 BSD 版本兼容的版本?或者还有其他方法可以解决这个问题吗?
答案1
pkgng 有几个后备方案:
- 有一个静态链接版本可用,如
pkg-static
. - 您可以通过明确告诉它来再次运行安装工具
/usr/sbin/pkg bootstrap -f
。
您需要做的就是告诉pkg
我们使用 FreeBSD 10.1 存储库。因为您的配置文件表明latest
它正在使用 FreeBSD 10.3 存储库,该存储库的软件包含对 10.1 或更早版本中未找到的库函数的各种未定义引用,包括openat
和utimensat
。 10.1 ABI 不向前兼容 10.3。
您可以通过将相应的.conf
文件更改/usr/local/etc/pkg/repos/
为特定版本而不是latest
,然后重新引导来完成此操作pkg
。
或者您可以在 ports 树中编译您自己的。但你仍会拉着其他10.3 软件latest
如果你这样做的话。
进一步阅读
pkg
。FreeBSD 杂项信息手册。 2013年12月12日。- 巴蒂斯特·达鲁辛等人。 (2015-10-31)。
pkg
。 FreeBSD 系统管理员手册。 - 巴蒂斯特·达鲁辛等人。 (2015-10-31)。
pkg-static
。 FreeBSD 系统管理员手册。 - 巴蒂斯特·达鲁辛等人。 (2017-02-02)。
pkg.conf
。 FreeBSD 文件格式手册。 /usr/local/lib/libpkg.so.3
:升级到 1.9.4_1 (FreeBSD 10.1) 后未定义的符号“openat”。 FreeBSDpkg
错误 #1526。 2017-01-05。 GitHub。- 未定义的符号“utimensat”。索引信息错误#8。 2017-01-14。 GitHub。
- 未找到“pkg”所需的共享对象“libarchive.so.7”
- FreeBSD 中 /usr/local 目录的作用
- 在 FreeBSD 10 中安装包管理器