システム変数を検索する代わりに、プログラムが使用する必要があるライブラリへのパスを指定できますか?
ベストアンサー1
ここにはいくつかのオプションがあります。最も一般的なもの
LD_LIBRARY_PATH=/custom/path:$LD_LIBRARY_PATH ./yourprogram
第二に、少し強力です。
LD_PRELOAD=/custom/path/lib.so ./yourprogram
1つ目は、検索リストにパスを最初に入力することです。 2番目は、他のライブラリをロードする前にライブラリをロードします。デフォルトの検索パスを完全に削除することはありません。動的にロードされたすべてのライブラリを交換したくない場合は問題ありません。
独自のプログラムをコンパイルする場合は、より多くのオプションがあります。静的にリンクするか(.a
ライブラリの全部または一部のみ)、ランタイム検索パスを設定できます。これを行うためのオプションは、コンパイラによって異なる場合があります。
コメントを追加:
空のパスを追加することが心配な場合は、LD_LIBRARY_PATH
次のものを使用できます。
LD_LIBRARY_PATH=/custom_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ./myprogram
ワンタイムコマンドの場合は少し複雑ですが、全体的にはより安全です。この点を指摘したStephen Kittに感謝します。