独自のld.so.cacheを使用できますか?


13

ldconfig 2つの興味深いオプションがあります。

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

私は/etc/ld.so.conf自分のホームディレクトリにコピーしてみて、ローカルライブラリへのパス/home/syockit/local/usr/libなどを含むように編集しました。

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

その後、ライブラリがキャッシュされていることを確認するために、実行しました

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

システムライブラリも含めて、すべてのライブラリが含まれています。

ここで、デフォルトのリンカーがこれら2つを使用するようにします。しかし、man ld.soでは、カスタム.confまたはを使用できるという言及はありません.cache。では、上記の2つのオプションのポイントは何ldconfigですか?

回答:


8

他の方法でも同じことを達成できますが、あなたの質問に対する答えはノーだと思います。

man ld.soには、カスタム.confまたは.cacheを使用できるという言及はありません。

確かに、そこの言及である$LD_LIBRARY_PATHとし、--library-path前者はより一般的に有用な。

上記の2つのオプションのポイントは何ldconfigですか?

したがって、システムのキャッシュを上書きせずに、システムの設定を使用せずにキャッシュを作成できます。


...それだけのために?または、システムフォレンジック用ですか?
syockit 14年

1
システムイメージやchroot環境などに使用できます。
goldilocks 14年

5

/etc/ld.so.conf(ダイナミックローダー)ldconfigではなくld.so(キャッシュ生成プログラム)によって読み取られます。システムのデフォルトとは異なるキャッシュを生成する場合は、構成ファイルの場所を変更できます。

/etc/ld.so.cacheによってld.so読み取られ、別の場所から読み取ることはできません。それでも、異なる出力場所をに渡すと便利ですldconfig。最も一般的な使用例は、おそらくchroot環境です。を使用して代替ルートでldconfig -r /some/root実行ldconfigし、必要な場所(そのルートの内側または外側)に出力を配置できます。出力を出力するか、/some/root/etc/ld.so.cache後でコピーする必要があります。他のかなりあいまいな使用例があります。たとえばldconfig、権限のないユーザー(に書き込みできない/etc/ld.so.cache)として実行し、後でファイルを所定の場所に移動する場合です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.