Я пытаюсь запустить программу (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
.