【Linux】openssl version mismatch. built against 30000010, you have 30200020

错误:openssl version mismatch. built against 30000010, you have 30200020

这个错误通常是因为系统中安装了不同版本的 OpenSSL 库,导致程序在编译时使用了一个版本的 OpenSSL,而运行时却加载了另一个版本的库。根据错误信息,您的系统中 OpenSSL 版本为 3.0.7,而库中存在 3.2.24 版本的组件。

通过以下步骤,您可以解决这个问题。

步骤 1:检查 OpenSSL 版本

首先,使用 openssl version 命令检查当前系统安装的 OpenSSL 版本:

bash 复制代码
openssl version

输出类似于:

bash 复制代码
OpenSSL 3.0.7 1 Nov 2022 (library: OpenSSL 3.2.24 Jun 2024)

在这个例子中,系统上的 OpenSSL 版本是 3.0.7,但是库文件加载的是 3.2.24 版本,这就是导致不匹配的原因。

步骤 2:检查 OpenSSL 安装信息

接下来,使用 rpm 命令来检查系统上已安装的 OpenSSL 相关包:

bash 复制代码
rpm -qa | grep openssl

这个命令会列出系统中安装的所有与 OpenSSL 相关的包。

步骤 3:查看哪些包依赖 OpenSSL

在删除 OpenSSL 3.2.24 版本的库之前,建议查看哪些包依赖于 openssl-libs 包,以免删除后影响其他程序。可以使用以下命令:

bash 复制代码
rpm -q --whatrequires openssl-libs-3.2.2-6.el9.x86_64

此命令会列出依赖 openssl-libs 包的所有软件包。确保这些依赖是您需要的,并且确认可以安全删除。

步骤 4:删除冲突的 OpenSSL 版本

如果确认删除 OpenSSL 3.2.24 版本的库是安全的,可以使用 rpm 命令强制删除这个包,绕过依赖检查:

bash 复制代码
sudo rpm -e --nodeps openssl-libs-3.2.2-6.el9.x86_64

该命令将删除 openssl-libs 3.2.2-6.el9.x86_64 版本,解决 OpenSSL 版本不匹配的问题。

步骤 5:清理不必要的依赖

在删除不需要的 OpenSSL 版本后,可以使用 dnf 命令清理不再使用的依赖包:

bash 复制代码
sudo dnf autoremove

这将自动清理系统中不再需要的依赖包,帮助保持系统的整洁。

相关推荐
QC班长3 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Elastic 中国社区官方博客4 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
Agent手记4 小时前
制造业数字化升级:生产全流程企业级智能体落地解决方案 —— 基于LLM+超自动化全栈架构的智改数转深度实战
运维·ai·架构·自动化
云安全助手4 小时前
弹性云服务器+高防IP:让DDoS攻击不再是业务“生死劫”
运维·网络·安全
AC赳赳老秦4 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
深色風信子5 小时前
Docker newapi
运维·docker·容器·newapi
mounter6255 小时前
【内核新动向】告别物理槽位束缚:深度解析 Linux Virtual Swap Space 机制
linux·内存管理·kernel·swap·virtual swap
handler015 小时前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
2023自学中6 小时前
i.MX6ULL 板子的完整启动流程图(从上电 → 用户空间)
linux·嵌入式
闫利朋6 小时前
Ubuntu 24.04 桌面安装向日葵完整指南
linux·运维·ubuntu