openssl:加载共享库时出错:libssl.so.3
openssl: error while loading shared libraries: libssl.so.3
无论我输入什么与 'openssl' 组合,我总是收到以下错误消息:
'openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory'
阅读了本论坛和其他论坛中提出的许多问题后,我不知道如何解决该问题。
我在安装 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
使用 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
我当时只是通过创建一个符号链接并重建 ldconfig 缓存来解决它。
ln -s libssl.so.3 libssl.so
sudo ldconfig
在我的例子中,它与在 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 从源代码构建成功。
我从 github: https://github.com/openssl/openssl 编译了 openssl。
检查生成的 Makefile(由 ./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)
很简单:
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
安装 openssl-3.0.0 后,我注意到 libssl.so.3
和 libcrypto.so.3
文件位于 /usr/local/ssl/lib64
.
这对我有用:
- 我编辑了位于
/etc/ld.so.conf.d/
的 openssl-X.y.z.conf 文件并将 /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)
ldconfig /usr/local/lib64/
从 sourecs 编译:
./Configure
make
make install
ldconfig /usr/local/lib64/
在 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 配置。
此解决方案 (粘贴在下方)也适用于 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)
我最初在 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)
无论我输入什么与 'openssl' 组合,我总是收到以下错误消息:
'openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory'
阅读了本论坛和其他论坛中提出的许多问题后,我不知道如何解决该问题。
我在安装 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
使用 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
我当时只是通过创建一个符号链接并重建 ldconfig 缓存来解决它。
ln -s libssl.so.3 libssl.so
sudo ldconfig
在我的例子中,它与在 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+.
完成此练习后,Python 3.8.5 从源代码构建成功。
我从 github: https://github.com/openssl/openssl 编译了 openssl。
检查生成的 Makefile(由 ./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)
很简单:
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
安装 openssl-3.0.0 后,我注意到 libssl.so.3
和 libcrypto.so.3
文件位于 /usr/local/ssl/lib64
.
这对我有用:
- 我编辑了位于
/etc/ld.so.conf.d/
的 openssl-X.y.z.conf 文件并将/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)
ldconfig /usr/local/lib64/
从 sourecs 编译:
./Configure
make
make install
ldconfig /usr/local/lib64/
在 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 配置。
此解决方案
"...我从 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)
我最初在 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)