解决 /usr/local/lib/libssl.so.1.1: version OPENSSL_1_1_1 not found

使用cmake时出现以下错误:

cmake: /usr/local/lib/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /usr/lib/x86_64-linux-gnu/libcurl.so.4)

先确认了下问题,使用命令objdump -tT libssl.so.1.1 |grep OPENSSL_1_1_

发现库文件里只有OPENSSL_1_1_0, 没有 OPENSSL_1_1_1。

或者使用 openssl version 查看版本。

解决方法:

https://www.openssl.org/下载最新版本,目前 是 openssl-1.1.1g.tar.gz。

tar xvf openssl-1.1.1g.tar.gz

cd openssl-1.1.1g

./config

make

make install

最后使用openssl version确认下版本。 OK!

<think>好的,用户遇到了一个关于curl的错误,提示缺少OPENSSL_1_1_1版本。我需要先理解这个错误的原因。看起来是系统里的libcurl.so.4需要特定版本的OpenSSL库,但当前安装的libssl可能版本不匹配或者缺失。 首先,用户可能是在运行curl或其他依赖curl的命令时遇到这个问题。错误信息指出libcurl.so.4需要libssl.so.1.1OPENSSL_1_1_1版本,但系统中可能没有安装正确版本的OpenSSL,或者路径配置有问题。 接下来,我需要考虑可能的解决方案。常见的情况包括系统升级后库版本不兼容,或者用户手动安装的软件依赖了特定版本的库。可能需要检查系统中已安装的OpenSSL版本,并确保libcurl链接到了正确的版本。 可能的步骤包括: 1. 确认当前安装的OpenSSL版本。 2. 检查libcurl所依赖的库是否正确。 3. 更新或重新安装OpenSSL到兼容版本。 4. 重新安装curl以链接到正确的库。 5. 检查库路径是否配置正确,比如LD_LIBRARY_PATH或ldconfig缓存。 另外,用户可能在尝试安装某些软件时遇到这个问题,或者系统更新导致库版本冲突。需要判断用户是否有权限安装软件,是否需要使用sudo。同时,可能需要指导用户如何检查库的版本,比如使用ldd查看依赖,或者使用apt命令查找相关包。 还需要注意不同Linux发行版的包管理工具不同,比如Ubuntu/Debian使用apt,而CentOS/RHEL使用yum/dnf。用户可能使用的是Ubuntu,所以需要给出对应的命令。此外,如果用户是从源代码安装的库,可能需要调整路径或使用update-alternatives来设置默认库版本。 最后,应该提醒用户在操作前备份重要数据,避免因库更新导致系统不稳定。如果用户的问题仍未解决,可能需要进一步的信息,比如系统版本、安装的软件源等。</think>--- ### 问题分析 你遇到的错误是典型的**动态库版本不匹配**问题: ```bash curl: /usr/local/lib/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /lib/x86_64-linux-gnu/libcurl.so.4) ``` **原因**:系统中安装的`libcurl`(如通过`apt`安装的官方版本)需要依赖`OpenSSL 1.1.1`,但当前`/usr/local/lib/libssl.so.1.1`可能是一个旧版本、损坏版本或非官方编译版本,导致版本符号`OPENSSL_1_1_1`无法识别。 --- ### 解决方案 #### 方法一:修复系统OpenSSL库(推荐) 1. **卸载自行编译的OpenSSL** 若你曾通过源码编译安装过OpenSSL,先尝试清理: ```bash sudo rm -rf /usr/local/lib/libssl* /usr/local/lib/libcrypto* ``` 2. **安装系统官方OpenSSL 1.1.1** ```bash sudo apt update sudo apt install libssl1.1 # Ubuntu/Debian ``` **验证安装**: ```bash ls -l /lib/x86_64-linux-gnu/libssl.so.1.1 ``` 3. **重建动态库缓存** ```bash sudo ldconfig ``` 4. **重新安装curl**(若必要) ```bash sudo apt install --reinstall curl ``` --- #### 方法二:强制链接正确库路径(临时应急) 若系统已存在`libssl.so.1.1`但路径未被识别,可手动指定库路径: ```bash export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH ``` 再运行`curl`测试是否正常。 > **注意**:此方法仅在当前终端会话有效,重启后失效。 --- #### 方法三:检查多版本冲突(高级排查) 1. **查看所有libssl.so文件** ```bash sudo find / -name "libssl.so*" ``` 若发现多个版本(如`/usr/lib`和`/usr/local/lib`下的冲突文件),需删除非官方版本。 2. **检查curl依赖关系** ```bash ldd /usr/bin/curl | grep ssl ``` 输出应指向系统库路径(如`/lib/x86_64-linux-gnu/libssl.so.1.1`)。 --- ### 补充说明 1. **常见触发场景** - 自行编译安装高版本OpenSSL后未清理旧版本。 - 通过非官方渠道安装软件(如某些第三方脚本)。 2. **版本兼容性** - `OpenSSL 1.1.1`于2018年发布,主流Linux发行版(Ubuntu 18.04+/Debian 10+)默认支持。 - 若系统仓库无`libssl1.1`,可能需升级系统或添加官方仓库。 --- ### 操作后验证 运行以下命令测试是否修复: ```bash curl --version ``` 正常输出应包含`SSL`支持: ```bash curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f ... ``` 若问题仍存在,可提供系统版本(`lsb_release -a`)和详细错误日志进一步分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值