web-dev-qa-db-ja.com

ld.conf.so.dライブラリパス解決の優先順位を下げる

別の質問から 、およびその他 主題に関する記事ld.so.conf.dで定義された追加のライブラリパスは常に解決されるようです(つまり、システムライブラリをオーバーライドする場合など、名前の衝突)、before/libまたは/usr/libを介して提供されるライブラリ。

ld.so.conf.dまたはその他のメカニズムを介して、ライブラリを解決できるシステム全体のパスを作成することは可能ですか?ただし、可能な限り低い/最新の解決レベルで行うことができますか?たとえば、/ParanoidAndroid/のライブラリを解決したいのですが、そのパスを最後に検索した場所にします(つまり、/lib/usr/libのライブラリに優先順位を付けます/ParanoidAndroid/)に格納されているライブラリに対して、ルックアップの順序は次のようになります。

  1. LD_LIBRARY_PATHからのディレクトリ。
  2. /etc/ld.so.confからのディレクトリ;
  3. / lib;
  4. / usr/lib。
  5. /パラノイドアンドロイド;
2
Cloud

/lib/usr/lib/etc/ld.so.confまたは/etc/ld.so.conf.dのファイルの1つに明示的にリストすると、これら2つの後に続くディレクトリの検索の優先度が低くなります。

このようなもの:

# contents of /etc/ld.so.conf
/lib
/usr/lib
/ParanoidAndroid

次のことを忘れないでください。

$ Sudo ldconfig

そして、あなたはそれをチェックすることができます:

$ ldconfig -v

次に、/ParanoidAndroidの下のライブラリが最後に来ることを確認します。

ldconfig: Path '/lib' given more than onceなどの警告が表示される場合がありますが、それはおそらく予想どおりですよね?)

1
filbranden