パスのリストを取得するための最もポータブルで堅牢な方法は何/etc/ld.so.conf
ですか?それによって構成され、そこから含まれるファイルは何ですか?ファイルを手動で解析することはお勧めできません—フォーマットは将来のリビジョンで変更される可能性があります。
質問をよりよく理解できるように、以下に具体的な詳細を示します。これらの詳細にもかかわらず、これは一般的なプログラミングの質問であり、他の状況に適用できることに注意してください。
LuaRocksと呼ばれるプログラムがあります。これは、Luaプログラミング言語(Ruby gemやPythoneggsのようなもの)のパッケージマネージャーです。LuaRocksパッケージは「ロック」と呼ばれます。
便利な機能として、LuaRocksを使用すると、ロックの作成者は、Cヘッダーファイルやダイナミックライブラリファイルのリストとして作成された、ロックの外部依存関係のリストを指定できます。(Linuxでは.so。)指定されたファイルが存在しない場合、ロックをインストールできません。
現在、Linuxでは、LuaRocksはデフォルトで2つのハードコードされたパスでファイルを検索することによって.soファイルの存在をチェック/usr/lib
します/usr/local/lib
。
これは間違った振る舞いであり、Ubuntuや他のDebianディストリビューションの最近の変更によって壊れていると思います。
更新:パス自体はハードコーディングされていませんが、構成ファイルでユーザーが構成できます。それでも、IMOは最善の解決策ではありません。
代わりに(私が理解しているように)、LuaRocksは、パスで指定された/etc/ld.so.conf
ファイルとそこに含まれるファイルを検索する必要があります。
(今、上記の質問をもう一度読んでください;-))