/etc/ld.so.conf.d/の設定ファイルで設定した場合、.soライブラリを/usr/local/libなどのディレクトリに配置するたびにldconfigを実行する必要があるのはなぜですか?

/etc/ld.so.conf.d/の設定ファイルで設定した場合、.soライブラリを/usr/local/libなどのディレクトリに配置するたびにldconfigを実行する必要があるのはなぜですか?

私はdockerでcentos 6.10を実行しています。タイトルに記載されているように/usr/local/lib.confファイルにおよびを設定しました。 .soライブラリを挿入するたびにこのタスクを実行する必要があります。それ以外の場合(Python 3をコンパイルするとき)、見つかりません。ただし、これを設定するには(confファイルに書き込むことなく)、ライブラリを配置した後に追加の手順は必要ありません。原因は何ですか?/usr/local/lib64/etc/ld.so.conf.d/ldconfig/usr/local/libLD_LIBRARY_PATH/usr/local/lib:/usr/local/lib64/etc/ld.so.conf.d/

しかし、/libディレクトリがor/usr/libに設定されていないのはなぜですか?/etc/ld.so.conf/etc/ld.so.conf.d/

ベストアンサー1

glibcを介してアプリケーションを実行すると、LD_LIBRARY_PATH=PATH app指定されたディレクトリ内のすべてのファイルがスキャンされます。

このフラグを使用しないと、/etc/ld.so.cacheキャッシュライブラリ()のみがアクティブになり、プロセス速度が向上します。アプリケーションを10万回連続して実行し、毎回すべてのディレクトリを再検索する必要があることを想像してください。すべてが遅くなる可能性があります。

おすすめ記事