3

libdnet を使用するプログラム (Snort) を実行しようとしていますが、それが見つからず、次のように出力されます。

Snort: 共有ライブラリの読み込み中にエラーが発生しました: libdnet.1: 共有オブジェクト ファイルを開けません: そのようなファイルやディレクトリはありません

ldconfigこれで、ライブラリへのパスを実行して に入れ、ライブラリを追加する必要があることがわかりました/etc/ld.so.conf。libdnet は にあるため、既にそのディレクトリをカバーしているため/usr/local/lib、変更する必要はありません。そのため、次のコマンドを実行して出力をトレースしたところ、ライブラリがロードされていないことに気付きました。ld.so.conf

ldconfig -v

.soどうやら ldconfigは、名前にどこかがありlibdnet.1、パターンと一致しないファイルのみをロードします。
ソースから libdnet をビルドし、./configure; make; make installコマンドを使用してインストールしました。必要がない限り、パッケージマネージャーを使用してインストールしたくありません。私は何をすべきか?

編集:ここでは、ライブラリはパターンと一致する必要がある
と書かれていますが、ライブラリの名前を変更することはできません。私はそれを自分のアプリで作成したり、使用したりしていません。名前を変更するとロードされますが、Snort はnotを探していると思います。lib*.so*libdnet.1libdnet.so.1

4

1 に答える 1

3

ここで答えを見つけました。解決策は簡単でした: パターンに一致するコピーを作成します。

cp /usr/local/lib/libdnet.1.0.1 /usr/local/lib/libdnet.so.1.0.1

あまり好ましくない代替手段:

$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
于 2014-03-04T15:48:35.313 に答える