コンピュータを再起動した後も、ld.so.cache
にはまだ情報が含まれているため、質問は次のとおりです。
情報は常にそこに保管されていますか?再起動後に削除されるのではないですか? RAMまたはブラウザのキャッシュが削除されますか?
いくつかの共有ライブラリをインストールしたアプリケーションを削除した後、ld.so.cache
からも情報を削除することを知っていますか? ldconfig
を使用すると、情報が削除されますか?実際にはどのように機能しますか?
プログラムをインストールしている場合、コンピューターはどのようにして、追加された新しいライブラリを使用することを認識しますか? apt-get install
の実行後、ldconfig
は実行されますか?
Linuxプログラムは、共有オブジェクトと呼ばれるライブラリを使用しています。共有オブジェクトの拡張子は.soです。 S.O.を表示するにはコマンドの使用法ls
run ldd /bin/ls
デフォルトでは、libは/ lib/usr/libおよび/ usr/local/lib(/ lib32、32/64ビットの場合は/ lib64)に保存されます。追加のライブラリが見つかる情報は/etc/ld.so.conf.d/
に保存されています。特定のライブラリへのパスを含む単一の.confファイルがあります。 /opt/foo/lib
。 /etc/ld.so.conf.d/での検索は非常に遅いため、ldconfig
は/etc/ld.so.cacheファイルを生成します。これは、これのバイナリバージョンであり、検索速度を向上させます。最初の質問に答える。ファイルを保持しません。
はい、apt-getまたはdpkg(?)がldconfigをトリガーしています。仕組み-1を参照してください。
はい、1をご覧ください。
私はそれを正しく理解したと思います。私を自由に修正してください。
apt-get
とdpkg
はどちらもldconfig
を呼び出してキャッシュを再構築します。
これはすべての一括操作の最後に行われると思いますが、確実にはわかりません。
特定のデータをキャッシュから削除する方法はないと思います、それは単に再構築されたものです:
rm /etc/ld.so.cache
ldconfig
ldconfig -p
を使用して、キャッシュの内容を確認できます。
私のシステムでは、再起動のたびにldconfig
が呼び出されますが、/etc/
がキャッシュに使用されている場合、毎回ゼロから作成されません。必要な場合は、自分で再構築する必要があります。
一部のライブラリを手動で削除した場合は、再構築する必要があります。