web-dev-qa-db-ja.com

共有ライブラリの読み込み中のエラー:libcrypto.so.1.1

「openssl」を実行すると、次のようなエラーが発生します。

openssl:共有ライブラリのロード中にエラーが発生しました:libcrypto.so.1.1:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

これは、OpenSSLをこれに従って更新しようとした後に発生しました article

とにかくこれを修正する方法はありますか?

OS:CentOS 6.8 Webサーバー:nginx/1.10.2

更新#1:

[root@Host ~]# yum info openssl
Installed Packages
Name        : openssl
Arch        : x86_64
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 4.0 M
Repo        : installed
From repo   : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 1.5 M
Repo        : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.
13
mayasl

Openssl 1.1.0cの最後のバージョンをインストールした後も同じ問題が発生しました。ライブラリファイルlibcrypto.so.1.1libcrypto.aおよびlibssl.so/usr/local/lib64から/usr/lib64でライブラリを共有します。
ライブラリをコピーした後、シンボリックリンクを作成する必要があります。

ln -s libcrypto.so.1.1 libcrypto.so
ln -s libssl.so.1.1 libssl.so

シンボリックリンクを作成した後 ldconfigキャッシュの再構築 も必要でした:

Sudo ldconfig
20
Benedict

OpenSSLの元のバージョンでは、/usr/lib64がリンカーの検索パスに含まれているため、共有ライブラリを見つける方法を知っていました。 OpenSSLの「ローカル」コピーをダウンロードしてコンパイルすると、共有ライブラリはデフォルトで/usr/local/lib64に配置されました。したがって、おそらくこのディレクトリを、次のように(ルートとして)リンカの検索パスに追加する必要があります。

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf

次に実行します:

ldconfig

これで問題が解決すると思います。

9
doug.fsu

ChromeOSのTermuxを使用してこのエラーが発生したため、npmおよびnodeコマンドラインプログラムがクラッシュしました。

ランニング pkg upgrade問題を修正しました!

3
Carl Walsh

@benedictが言ったことは私のために働いた。ただし、一部のシンボリックリンクが古いバージョンを指している場合があります。/usr/libsからls -l libcrypto*を実行すると、リンクが表示されます。以下の例のように:

lrwxrwxrwx 1 root root      16 May 21 15:28 libcrypto.so -> libcrypto.so.1.0

次に、Sudo rm libcrypto.soと入力して既存のリンクを削除し、次に@benedictで述べたようにlibcrypto.so.1.1をコピーします。最後に、新しいリンクを作成できます。 Sudo ln -s libcrypto.so.1.1 libcrypto.so

お役に立てれば。

1
Ihsan Izwer

あなたはそれを再インストールすることができます

yum install -y openssl-devel

1
mzhaase

libcrypto.soopenssl-libsパッケージに属しています。このパッケージを手動で(--nodepsで)強制的に削除したり、アップグレードして破損したりすると、yum、wget、curl、sshなどにアクセスできなくなります。システムがインターネットにアクセスできる場合は、openssl-libsをダウンロードしてください。/usr/bin/GETコマンドを使用してください。バージョンopenssl-libs-1.0.2k-8.el7.x86_64を復元しようとすると、構文は次のようになります。

/usr/bin/GET http://downloadURL/openssl-libs-1.0.2k-8.el7.x86_64.rpm > openssl-libs-1.0.2k-8.el7.x86_64.rpm

これによりopenssl-libs-1.0.2k-8.el7.x86_64.rpmパッケージが作成されます。これを使用して、不足している.soファイルを再インストールまたは抽出できます。

1
Karthik

CentOS 7では、libssl.so.1.1/usr/local/ssl/libにあります。

そのため、ダイナミックローダーがライブラリを検索するデフォルトの場所にこのパスを追加する必要がありました。 opensslバイナリ用に、openssl-1.1.1c.confという名前の別のファイルを/etc/ld.so.conf.dフォルダに作成しました。

echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf

今では動作します。

0
Boris Burkov

まったく同じ問題が発生しました...次のコマンドを実行して問題を解決しました。

ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

これでソフト​​リンクが作成され、準備完了です。

0
Faheem

これは私が見つけた最高の解決策です...インターネット全体で提供される他の解決策は、システムの再起動に耐えられません;)

OS:Ubuntu 16.04

Sudo vim /etc/ld.so.conf.d/libc.conf

Libディレクトリー設定にコメントし、適切なパスを追加します

# libc default configuration

#/usr/local/lib

/usr/lib

編集が完了したら、次のコマンドを実行します。

Sudo ldconfig

次に、実行すると良い設定になります:

ldd/usr/bin/openssl

この修正の前:

 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
linux-vdso.so.1 =>  (0x00007ffe6d1e3000)
libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f8999827000)
libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007f89993ed000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8999023000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8998e1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8999a97000)

修正後、私は提供しました:

linux-vdso.so.1 =>  (0x00007ffec39bc000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7faad22000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7faa8dd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7faa513000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7faa30f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7faaf8b000)
0
ZEROF