プログラムはld.so.conf.dで宣言されたlibを見つけることができません。

プログラムはld.so.conf.dで宣言されたlibを見つけることができません。

私は、会社が開発した複数のライブラリ(もちろん他のライブラリも含む)を使用する新しいサーバーとして、会社が開発したプログラムを移行しています。現在の(以前の)サーバー(RHEL 5)では、このライブラリは/ usr / lib64にありますが、新しいサーバー(RHEL 7)はそれをシステムディレクトリではなくディレクトリに配置しようとしています。したがって、このライブラリを/usr/local/lib64(他の必須ライブラリと一緒に)に配置し、/etc/ld.so.conf.d/custom-libs.conf lib64ファイルに/usr/local/パスを挿入しました。オペレーティングシステムのキャッシュを更新するには、「ldconfig -v」を実行してください。カスタムライブラリの1つを除いて、すべてのライブラリが正しく検出されました。 lddコマンドでもライブラリが見つかりません。

# ldd custom_program | grep custom_lib
    custom_lib.so => not found

ただし、var LD_LIBRARY_PATHを/usr/local/lib64として使用してコマンドを実行すると機能します。

# LD_LIBRARY_PATH=/usr/local/lib64 ldd custom_program | grep custom_lib
    custom_lib.so => /usr/local/lib64/custom_lib.so (0x0000...)

/usr/lib64にlib(またはシンボリックリンク)を入れても機能しますが、最後の手段としてこれを行いたいと思います。

ベストアンサー1

おすすめ記事