У меня есть сервер Ubuntu, который недавно обновил Perl до 5.14.2, когда я установил cpanminus. Это нарушило совместимость с модулем BMC Remedy API. Похоже, я не могу вернуться к старой версии Perl, поэтому я попытался перекомпилировать ARSperl для Perl 5.14.2.
Проблема в том, что когда я запускаю старый Perl-скрипт, использующий старый модуль, я получаю следующее:
Can't load '/usr/local/lib/perl5/5.14.2/auto/ARS/ARS.so' for module ARS:
/usr/local/lib/perl5/5.14.2/auto/ARS/ARS.so: undefined symbol:
yp_get_default_domain at /usr/local/lib/perl5/5.14.2/i686-linux/DynaLoader.pm line 190.
Итак, немного поиска в Google подсказывает мне, что yp_get_default_domain находится в libnsl. Я дошел до того, что попытался перекомпилировать как модуль ARSperl, так и сам Perl с явным вызовом "-lnsl" в Makefile. К сожалению, это ни к чему меня не привело. Библиотека действительно установлена в системе в /usr/lib/i386-linux-gnu/.
В Makefile ARSperl:
LDFLAGS = -fstack-protector -L/usr/local/lib -L/usr/lib -L/usr/lib/i386-linux-gnu -lnsl
Поэтому у меня есть двойной вопрос к гуру Perl.
-Как определить, какой из Perl, DynaLoader или сам ARS.so не может найти «yp_get_default_domain»?
-Каков наилучший следующий шаг для устранения вышеуказанного сообщения DynaLoader об отсутствующей библиотеке, которая действительно присутствует в системе и связана с модулем?
Заранее спасибо за то, что поделились своими знаниями и советами.