Bsd

安裝了不兼容的 pkg 版本,如何解除安裝(或以其他方式修復)?

  • March 13, 2018

在嘗試將 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 或更早版本中未找到的庫函式的各種未定義引用,包括openatutimensat. 10.1 ABI 與 10.3 不向前兼容。

您可以通過更改適當的.conf文件來執行此操作,/usr/local/etc/pkg/repos/以說出特定版本而不是latest,然後重新引導pkg.

或者您可以在埠樹中編譯自己的。但是,如果您這樣做,您仍然會從中提取其他10.3 軟體。latest

進一步閱讀

引用自:https://unix.stackexchange.com/questions/430038