升级FreeBSD pkg时遗漏libssl升级致其失效,如何回滚修复?
解决PfSense中pkg升级后依赖缺失无法运行的问题
问题背景
在PfSense 2.7.0中安装wget时,直接将pkg从1.19.1_2升级至1.20.7,未处理系统提示的libssl.so升级需求,导致pkg因缺失libssl.so.30无法运行,需回滚至旧版本后重新完成正确升级。
解决步骤
1. 使用pkg-static回滚pkg版本
动态编译的pkg命令因依赖缺失无法运行,改用静态编译的pkg-static(不依赖系统动态库)操作:
- 临时指定PfSense官方仓库,确保能获取匹配版本的pkg:
export PKG_REPO=https://pkg.pfsense.org/pfSense_v2_7_0_amd64-pfSense_v2_7_0/ - 执行回滚安装:
pkg-static install -f pkg-1.19.1_2 - 若上述命令找不到包,手动下载后强制安装:
# 下载旧版本pkg包 fetch https://pkg.pfsense.org/pfSense_v2_7_0_amd64-pfSense_v2_7_0/all/pkg-1.19.1_2.pkg # 强制安装回滚 pkg-static add -f pkg-1.19.1_2.pkg
2. 修复依赖并正确升级pkg
回滚成功后,先处理libssl依赖,再正常升级pkg:
- 更新仓库索引:
pkg update - 先升级openssl(libssl是openssl的核心组件):
pkg upgrade openssl - 再正常升级pkg:
pkg upgrade pkg
3. 安装wget
依赖问题解决后,即可正常安装wget:
pkg install wget
4. 配置正确的pkg仓库(避免后续版本冲突)
之前出现的OS版本不匹配提示,是因为使用了FreeBSD官方仓库而非PfSense专属仓库,建议配置回官方仓库:
- 编辑PfSense仓库配置文件:
确保内容为:vi /usr/local/etc/pkg/repos/pfSense.confpfSense: { url: "pkg+https://pkg.pfsense.org/pfSense_v2_7_0_amd64-pfSense_v2_7_0", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/local/share/pfSense/keys/pkg", enabled: yes } - 禁用FreeBSD仓库(若存在):
设置vi /usr/local/etc/pkg/repos/FreeBSD.confenabled: no
内容的提问来源于stack exchange,提问作者MiniMe
相关产品推荐
相关产品推荐

