/usr/local/lib の一部の共有ライブラリが見つかりませんが、/usr/lib にあります。

/usr/local/lib の一部の共有ライブラリが見つかりませんが、/usr/lib にあります。

以下のように、/usr/libにあるシンボリックリンク共有ライブラリを使用して実行可能ファイルを正常に実行できます。

sudo ln -s /lib/i386-linux-gnu/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.4

メンテナンスを容易にするために/usr/local/libに移動したいと思います。

sudo ln -s /lib/i386-linux-gnu/libcrypto.so.0.9.8 /usr/local/lib/libcrypto.so.4

しかし、私のシステムはこの特定のシンボリックリンクを無視しているようです。 /usr/local/libは関連するld.so.conf設定にあり、実際にはldconfig -v

/usr/local/lib:
        libcrypto.so.0.9.8 -> libcrypto.so.4

これまでの私の唯一の手がかりは、ldconfigが実際のファイル名に戻る追加のシンボリックリンクを生成することです。

/usr/local/lib $ ls -l *so*
lrwxrwxrwx 1 root root 14 Aug 26 22:53 libcrypto.so.0.9.8 -> libcrypto.so.4
lrwxrwxrwx 1 root root 38 Aug 26 22:36 libcrypto.so.4 -> /lib/i386-linux-gnu/libcrypto.so.0.9.8
lrwxrwxrwx 1 root root 49 Aug 26 22:36 libiniparser.so.0 -> /usr/lib/x86_64-linux-gnu/samba/libiniparser.so.0

たとえば、上記の出力では、libおよびlibiniparser.so.0へのリンクは/usr/libまたは/usr/local/libに含まれているかどうかに関係なく正常に動作します。最も簡単な説明は、ldconfigがライブラリファイル名エントリの切り替えを特に防ぐことです。しかし、その理論は、これが/ usr / libで動作する理由を説明していません。

どんな洞察力でも大変感謝いたします。ありがとうございます。

ベストアンサー1

新しい場所へのディレクトリパスを含む/etc/ld.so.conf.dに別の構成ファイルを追加して、より多くのパスを追加してからキャッシュを再作成または再起動できます。または、/sbin/ldconfig コマンドを使用してこの方法を実行できます。

おすすめ記事