10

无论我输入什么与“openssl”组合,我总是会收到以下错误消息:

'openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory'

在阅读了此论坛和其他论坛中提出的许多问题后,我不知道如何解决该问题。

4

11 回答 11

9

我当时只通过创建符号链接并重建 ldconfig 缓存来解决它。

ln -s libssl.so.3 libssl.so
sudo ldconfig
于 2020-02-28T10:29:48.067 回答
8

安装 Openssl 3.0 后我遇到了同样的问题。我通过复制文件解决了这个问题libcrypto.so.3,从libcrypto.a到。复制这些文件后,您需要创建一些符号链接。libssl.so.3/usr/local/lib/usr/lib

ln -s libcrypto.so.3 libcrypto.so
ln -s libssl.so.3 libssl.so

现在重建 ldconfig 缓存:

sudo ldconfig

于 2019-05-05T19:15:16.980 回答
5

我从 github 编译了 openssl:https ://github.com/openssl/openssl 。检查生成的 Makefile (by ./config) 默认安装目录是/usr/local/lib64.

但是,在 RHEL 上,此目录不在加载库路径中。以下在 RHEL 7.9 上对我有用:

编辑 ld.conf 文件以添加包含 /usr/local/lib64 的行:

$ sudo nano /etc/ld.so.conf.d/lib.conf
/usr/local/lib64

有时,openssl 安装在 /usr/local/ssl 中,并且会创建一个类似 /etc/ld.so.conf.d/openssl.conf 的文件。可以在此处添加库的路径:

$ sudo nano /etc/ld.so.conf.d/openssl.conf
/usr/local/ssl/lib64

添加文件路径后,更新库路径

$ sudo ldconfig

完整性检查

$ openssl version
Output: OpenSSL 3.0.0-alpha11 28 jan 2021 (Library: OpenSSL 3.0.0-alpha11 28 jan 2021)
于 2021-02-04T15:56:44.017 回答
3

就我而言,它与 SLES 12.1 上的 Python 3.8 安装有关。由于 OpenSSL 错误,Pip 安装失败。

然后我克隆了 openssl 存储库并从源代码构建它。

git clone https://github.com/openssl/openssl.git

./Configure make make install

最后ldconfig是重要和需要的。

然后openssl version -a应该显示没有错误的响应。构建 Python 3.5+ 至少需要 openssl 1.1。

在这个练习之后,从源代码构建 Python 3.8.5 是成功的。

于 2020-09-01T15:06:43.613 回答
3
ldconfig /usr/local/lib64/

从源代码编译:

./Configure
make
make install
ldconfig /usr/local/lib64/
于 2021-11-08T07:49:29.460 回答
1

使用 . 编译并运行您的代码sudo。它会起作用的。

如果它不起作用,请按照以下步骤操作

sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
于 2019-05-22T05:07:25.343 回答
0

很简单:

ln -s /usr/lib/vmware/lib/libssl.so.1.0.2/libssl.so.1.0.2 /usr/lib64/libssl.so.1.0.2
ln -s /usr/lib/vmware/lib/libcrypto.so.1.0.2/libcrypto.so.1.0.2 /usr/lib64/libcrypto.so.1.0.2
于 2021-08-07T01:27:09.827 回答
0

安装openssl-3.0.0libssl.so.3后,我注意到libcrypto.so.3文件位于/usr/local/ssl/lib64.

这对我有用:

  • 我编辑了位于的openssl-Xyzconf文件/etc/ld.so.conf.d/并更改/usr/local/ssl/lib/usr/local/ssl/lib64
  • 我使用ldconfig重新加载

开始运行这些两个命令:

cd /etc/ld.so.conf.d/

sudo vim openssl-Z.y.z.config

更改文件,保存并退出 vim 编辑器。

sudo ldconfig -v

我的输出如下:

#...
libssl3.so -> libssl3.so
#...

并再次验证

openssl version

我的输出:

OpenSSL 3.0.0 7 sep 2021 (Library: OpenSSL 3.0.0 7 sep 2021)
于 2021-10-24T16:06:53.947 回答
0

我最初在 Fedora 22 (fc22.x86_64) (是的....旧服务器)上遇到了这个问题。我正在从旧版本的 OpenSSL (1.0.2) 升级到 OpenSSL 3.0.1。以下解决方案适用于我从下载的源代码 openssl-3.0.1.tar.gz 安装。我首先卸载了我以前版本的 OpenSSL,它不是从源代码安装的,而是从 DNF 安装的。

使用 DNF (OpenSSL 1.0.2) 卸载以前的版本

dnf 删除 openssl openssl-devel

Install OpenSSL 3.0.1

$ cd /usr/src

$ tar zxvf openssl-3.0.1.tar.gz

$ cd /usr/src/openssl-3.0.1/

$ ./config

$ make

$ make install

$ ldconfig /usr/local/lib64/

$ openssl version

OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
于 2022-03-05T00:24:27.303 回答
0

在 CentOS 7 上,对于 OpenSSL 3.0.0,这为我完成了工作

sudo ln -s /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3
sudo ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

无需系统重新启动或 ldcache 配置重建。

于 2021-11-20T19:34:52.910 回答
-1

kingaj 的这个解决方案(粘贴在下面)也适用于Ubuntu 20.04。我对其进行了测试,并且效果很好:

“...我从 github 编译了 openssl:https ://github.com/openssl/openssl 。检查生成的 Makefile(由 ./config)默认安装目录是 /usr/local/lib64。

但是,在 RHEL 上,此目录不在加载库路径中。以下在 RHEL 7.9 上对我有用:..."

$ sudo touch /etc/ld.so.conf.d/lib.conf

# edit ld.conf file 
# add a line containing `/usr/local/lib64`
$ sudo nano /etc/ld.so.conf.d/lib.conf

# update the library paths
$ sudo ldconfig

# sanity check
$ openssl version
OpenSSL 3.0.0-alpha11 28 jan 2021 (Library: OpenSSL 3.0.0-alpha11 28 jan 2021)
于 2021-12-15T00:45:40.357 回答