Linux マシン上のバイナリ ファイルは、デフォルトで /lib 内のライブラリを検索します。

Linux マシン上のバイナリ ファイルは、デフォルトで /lib 内のライブラリを検索します。

私の UNIX マシンでは、 '/lib' ディレクトリが ' ' および ' ' 変数/libで構成されていないにもかかわらず、バイナリがデフォルトで ' ' ディレクトリ内の依存共有ライブラリを探していることが確認されました。PATHLD_LIBRARY_PATH

以下では、ライブラリ ' libssl.so.4' が ' ' ディレクトリから見つかったことがわかります/lib

bash-3.00$ ldd openssl
        /lib/libcwait.so (0x00f86000)
        libssl.so.4 => /lib/libssl.so.4 (0x00408000)

私の「PATH」と「LD_LIBRARY_PATH」は以下の通りです:

bash-3.00$ echo $LD_LIBRARY_PATH
:/opt/oracle/product/11.2.0/client32/lib:

bash-3.00$ echo $PATH
/opt/pure/releases/purify.hp.2003a.06.15.FixPack.0214/cache/opt/star-ncf-prod/ep_patch/usr/lib:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/bin:.:/opt/ccm71/bin:/opt/oracle/product/11.2.0/client32/bin:/opt/tools/bin:/usr/local/bin

バイナリがデフォルトで '/lib' ディレクトリを参照するかどうかを mw に知らせてください。

答え1

ライブラリ (Linux OS 上) は ($PATH からではなく) からのパスで検索します/etc/ld.so.conf。このファイルを変更した後、以下を実行する必要があります。

sudo ldconfig

ライブラリ検索パスは次のコマンドで確認できます。

ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012

デフォルト パス: デフォルト パス/lib、その後/usr/libLinux ローダーとライブラリの見つけ方

関連情報