3

パスが存在しないときに ldd コマンドを実行すると、パスではなく「ファイルが見つかりません」というメッセージが表示されます。bash-3.2$ ldd curl libcurl.so.4 => /usr/local/lib/libcurl.so.4 libldap.so.5 => /usr/lib/libldap.so.5 librt.so.1 => / lib/librt.so.1 libssl.so.1.0.0 => (ファイルが見つかりません) libcrypto.so.1.0.0 => (ファイルが見つかりません)

見つからないファイルを確認するオプションはありますか? フルパス?

4

1 に答える 1

3

ldd は、/etc/ld.so.conf に記載されているライブラリ検索パスを検索しています。または、環境変数 LD_LIBRARY_PATH を使用する場合もあります。私が見る限り、少なくとも/usr/local/lib、/usr/lib、およびほとんどのシステムのデフォルトである/libに見えます。これら 3 つの場所で libssl.so.1.0.0 を見つけることができません。そのため、「ファイルが見つかりません」というメッセージが表示されます。

1 つの理由として、libssl.so.1.0.0 がインストールされていないことが考えられます。多分他のバージョン。

別の理由として、別の場所にインストールされている可能性があります。共有ライブラリをロードする必要があるアプリケーションは、そのパスがハードコーディングされているか、LD_LIBRARY_PATH を使用しています。

とにかく、あなたの質問に答えるために:libssl.so.1.0.0のフルパスがlddで見つからないため、エラーが発生します。

それを見つけるには、手動で検索する必要があります。1つの簡単な方法は

find / -ls | grep libssl.so

以上 (システム ディスクのみを検索する場合)

find / -mount -ls | grep libssl.so

これにより、複数の場所に多数のバージョンがインストールされる可能性があります。

于 2014-05-29T13:33:34.287 に答える