Если у ваш бинарник пишет, что не может найти библиотеку, а она физически есть – выход один, путь к библиотеке не прописан. И так: как быть и что делать?
1) Проверка
#ldd /usr/local/bin/exim: Start End Type Open Ref GrpRef Name 1c000000 3c039000 exe 1 0 0 /usr/local/bin/exim 0301f000 23028000 rlib 0 2 0 /usr/lib/libm.so.7.0 0cbba000 2cbbf000 rlib 0 1 0 /usr/lib/libwrap.so.4.0 02974000 22a53000 rlib 0 1 0 libiconv.so.6.0 => not found
как видим, для бинарника exim требуется библиотека libiconv.so.6.0, которую он не может найти.
2) Поиск библиотеки.
# find / -name libiconv.so.6.0 -print
/usr/local/lib/libiconv.so.6.0
то есть библиотека всё-таки есть, просто Exim не ищет в папке /usr/local/lib.
3) Просмотр текущего поиска библиотек.
# ldconfig -r | grep 'search directories'
search directories: /usr/lib
откуда видно, что поиск производится только в папке /usr/lib.
4) Добавление пути.
Что бы добавить нужный путь, выполним такую команду.
Будьте осторожны, так как команде требуется передать не только новый путь, но и все старые, соблюдая порядок!
# ldconfig /usr/lib /usr/local/lib
и проверим:
# ldconfig -r | grep 'search directories'
search directories: /usr/lib:/usr/local/lib
то есть всё впорядке.
PS. лучше запускать с ключами “mR” для добавления, а не замены
# ldconfig -v -m -R /usr/local/lib