libssl.so.0.9.8:无法打开共享对象文件:没有这样的文件或目录

libssl.so.0.9.8:无法打开共享对象文件:没有这样的文件或目录

安装后尝试在本地运行 Cloud9 IDE 时,我收到此错误:

# bin/cloud9.sh
Linux 64 bit
support/node-builds-v4/node-linux64: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory

它看起来很奇怪,因为该库位于/lib,/usr/lib以及通过符号链接的其他位置。

为了检查,这里是主文件:

# ls -l /usr/lib | grep libssl
-r-xr-xr-x. 1 root root   319816 Oct  6  2014 libssl.so.0.9.8

为什么它找不到该文件,是否需要将其包含在任何其他$PATH变量中或者可能是什么原因?

更新:

这似乎是 ssl 的一个更广泛的问题:

# git submodule update --init --recursive
Cloning into 'support/sass'...
fatal: remote error:
  Repository not found.
Clone of 'git://github.com/visionmedia/sass.js.git' into submodule path 'support/sass' failed
Failed to recurse into submodule path 'support/connect'

失败的模块需要ssl下载,而其他已下载的模块则不需要:

# cat .gitmodules
[submodule "support/socket.io-client"]
    path = support/socket.io-client
    url = http://github.com/ajaxorg/socket.io-client.git
[submodule "support/uglify-js"]
    path = support/uglify-js
    url = http://github.com/ajaxorg/UglifyJS.git
[submodule "support/connect"]
    path = support/connect
    url = https://github.com/ajaxorg/connect.git

检查 openssl 版本:

# yum list installed openssl
Loaded plugins: refresh-packagekit, security, ulninfo
Installed Packages
openssl.x86_64                      1.0.1e-42.el6                      

64 位安装的openssl库:

# ls -l /usr/lib64 | grep libssl
-rwxr-xr-x.  1 root root   261248 Nov  4 10:37 libssl3.so
lrwxrwxrwx.  1 root root       16 Dec  1 10:30 libssl.so -> libssl.so.1.0.1e
-rwxr-xr-x.  1 root root   324680 Jun  5  2014 libssl.so.0.9.8e
lrwxrwxrwx.  1 root root       16 Dec  1 10:29 libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x.  1 root root   444184 Jul 23 09:43 libssl.so.1.0.1e
lrwxrwxrwx.  1 root root       16 Dec  3 11:29 libssl.so.6 -> libssl.so.0.9.8e

答案1

正如您通过搜索 RPM 所看到的libssl.so.0.9.8,这是一个旧文件,不太可能是您为 openssl 列出的 RPM 的一部分。你可以使用哪些文件是 RPM 的一部分

rpm -ql openssl.x86_64

此外,您还可以通过以下方式查看该文件可能属于哪个 RPM

rpm -qf /usr/lib/libssl.so.0.9.8

还有什么建筑学该文件使用的是

file /usr/lib/libssl.so.0.9.8

最可能的解释是(一个或多个):

  • 该文件是从其他机器复制的
  • 它是一个 32 位库
  • ldconfig64 位库使用的路径/usr/lib64(不是/usr/lib)。

64 位应用程序无法加载 32 位共享库,并且只能在ldconfig允许的位置查找其库。

相关内容