Bsd
安裝了不兼容的 pkg 版本,如何解除安裝(或以其他方式修復)?
在嘗試將 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 版本兼容的版本?或者有沒有其他方法可以解決這個問題?
pkng 有幾個備份方案:
- 有一個靜態連結版本,可用作
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
.或者您可以在埠樹中編譯自己的。但是,如果您這樣做,您仍然會從中提取其他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。
- 找不到共享對象“libarchive.so.7”,“pkg”需要
- FreeBSD 中 /usr/local 目錄的作用
- 在 FreeBSD 10 中安裝包管理器