返回

Ubuntu 22.04 上“libssl.so.1.1: 无法打开共享对象文件”错误的解决方法

Linux

在 Ubuntu 22.04 上解决“libssl.so.1.1: 无法打开共享对象文件”错误

在升级到 Ubuntu 22.04 LTS 后,某些依赖于 OpenSSL 库的程序可能会遇到“libssl.so.1.1: 无法打开共享对象文件: No such file or directory”的错误。此错误表明系统中缺少 libssl.so.1.1 共享库,这可能是由于 Ubuntu 22.04 将 OpenSSL 升级到版本 3.0,而受影响的库仍依赖 OpenSSL 1.1 导致的。

解决方案

有多种方法可以解决此错误:

  • 安装 libssl1.1 库:
sudo apt-get install libssl1.1
  • 安装较低版本的 OpenSSL:
sudo apt-get install openssl=1.1
  • 使用符号链接:

创建一个符号链接,将 libssl.so.1.1 指向 libssl.so.3.0:

sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.3.0 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
  • 编写脚本:

编写一个脚本,在运行依赖 OpenSSL 的程序时自动加载 libssl1.1:

#!/bin/bash

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libssl1.1.so "$@"

保存脚本并使其可执行:

chmod +x script.sh

然后使用脚本运行你的程序:

./script.sh poetry

推荐的方法

推荐的方法是安装 libssl1.1 库,因为它不会引入版本冲突。其他方法是临时解决方案,不应长期使用。

结论

通过遵循这些步骤,你可以解决 Ubuntu 22.04 上的“libssl.so.1.1: 无法打开共享对象文件”错误,并让依赖于 OpenSSL 1.1 的库正常工作。

常见问题解答

Q1:为什么会发生此错误?

A1:此错误可能是由于升级到 Ubuntu 22.04 LTS 并将 OpenSSL 升级到版本 3.0 引起的,而受影响的库仍依赖于 OpenSSL 1.1。

Q2:我可以同时安装 OpenSSL 1.1 和 OpenSSL 3.0 吗?

A2:是的,你可以同时安装 OpenSSL 1.1 和 OpenSSL 3.0,但建议使用推荐的方法来避免版本冲突。

Q3:如何卸载 OpenSSL 1.1?

A3:要卸载 OpenSSL 1.1,可以使用以下命令:

sudo apt-get remove libssl1.1

Q4:如果这些解决方案不起作用,该怎么办?

A4:如果你遇到问题,可以尝试搜索更具体的解决方案或联系 Linux 社区寻求帮助。

Q5:我应该使用哪个方法?

A5:推荐的方法是安装 libssl1.1 库,因为它不会引入版本冲突。其他方法是临时解决方案,仅应在必要时使用。