openssl:加载共享库时出错:libssl.so.3

M. *_* L. 6 debian openssl libssl

我与“openssl”结合输入的内容无关紧要,我总是收到以下错误消息:

'openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory'
Run Code Online (Sandbox Code Playgroud)

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

Eug*_*kin 38

ldconfig /usr/local/lib64/
Run Code Online (Sandbox Code Playgroud)

来自 sourecs 的编译:

./Configure
make
make install
ldconfig /usr/local/lib64/
Run Code Online (Sandbox Code Playgroud)

您可以/usr/local/lib64/永久添加链接器的路径。在某些 Linux 发行版中没有添加它。检查这个答案


kin*_*gaj 15

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

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

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

$ sudo nano /etc/ld.so.conf.d/lib.conf
/usr/local/lib64
Run Code Online (Sandbox Code Playgroud)

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

$ sudo nano /etc/ld.so.conf.d/openssl.conf
/usr/local/ssl/lib64
Run Code Online (Sandbox Code Playgroud)

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

$ sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

完整性检查

$ openssl version
Output: OpenSSL 3.0.0-alpha11 28 jan 2021 (Library: OpenSSL 3.0.0-alpha11 28 jan 2021)
Run Code Online (Sandbox Code Playgroud)


M. *_* L. 7

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

ln -s libssl.so.3 libssl.so
sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

  • 如果您可以在“ln”命令中告诉我们 .sos 的完全限定路径,将会很有帮助;对我来说,编译和安装 openssl 后执行 `sudo ldconfig` 就足够了 (6认同)

Sto*_*fkn 5

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

ln -s libcrypto.so.3 libcrypto.so
ln -s libssl.so.3 libssl.so
Run Code Online (Sandbox Code Playgroud)

现在重建 ldconfig 缓存:

sudo ldconfig

  • 这是危险的建议,不应遵循。“/usr/lib”中的文件应该由操作系统的包管理器管理——覆盖它们将使您的系统处于不一致的状态。 (5认同)