ldconfig загружает только файлы .so

Я пытаюсь запустить программу (Snort), которая использует libdnet, но она не находит ее и выводит:

snort: ошибка при загрузке общих библиотек: libdnet.1: невозможно открыть общий объектный файл: нет такого файла или каталога

Теперь я знаю, что мне нужно добавить библиотеку, запустив ldconfig и указав путь к библиотеке в /etc/ld.so.conf. libdnet находится в /usr/local/lib, поэтому мне не нужно изменять ld.so.conf, так как он уже покрывает этот каталог. Поэтому я выполнил следующие команды и, отслеживая вывод, заметил, что моя библиотека не загружается.

ldconfig -v

Судя по всему, ldconfig загружает только файлы, имена которых содержат .so, а libdnet.1 не соответствует шаблону.
Я собрал libdnet из исходного кода и установил его с помощью команд ./configure; make; make install. Я бы предпочел не устанавливать его с помощью менеджера пакетов, если мне это не нужно. Что я должен делать?

EDIT:
Здесь сказано здесь, что библиотеки должны соответствовать шаблону lib*.so*, но я не могу' t переименовать библиотеку. Я не делал этого и не использую его в своем собственном приложении: если я переименую его, оно будет загружено, но я думаю, что Snort ищет libdnet.1, а не libdnet.so.1.


person atoMerz    schedule 04.03.2014    source источник


Ответы (1)


Нашел ответ здесь. Решение было простым: сделать копию, соответствующую шаблону.

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
person atoMerz    schedule 04.03.2014