web-dev-qa-db-ja.com

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
2
Peter Gerhat

libssl.so.0.9.8 を使用してRPMを検索するとわかるように、これは古いファイルであり、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

最も可能性の高い説明は(1つ以上)です。

  • ファイルは他のマシンからコピーされました
  • 32ビットのライブラリです
  • 64ビットライブラリの ldconfig パスは/usr/lib64を使用します(/usr/libではありません)。

64ビットのアプリケーションは、32ビットの共有ライブラリをロードできず、ldconfigがその可能性があると言っている場所でのみそのライブラリを見つけます。

2
Thomas Dickey