Почему установка DBD :: Pg не удалась в DynaLoader? - PullRequest
2 голосов
/ 21 января 2010
Error:  Can't load '/home/oracle/.cpan/build/DBD-Pg-2.16.1/blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: libpq.so.5: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.

У кого-нибудь была похожая ошибка при установке модуля perl DBD :: Pg? что я могу сделать, чтобы это исправить?

Ответы [ 4 ]

4 голосов
/ 21 января 2010

Вы должны пойти под Perl, чтобы решить эти проблемы динамического связывания. Используйте strace program &> out, а затем grep для libpq.so.5. Я предполагаю, что ваш libpq.so.5 находится не в том месте, или ваш DynaLoader неправильно настроен. Прочитайте документы на @dl_library_path.

Вы можете увидеть, каков ваш путь поиска с этим (strace также покажет, что он пытается найти .so, проверяя каждый каталог):

perl -MDynaLoader -le'print for @DynaLoader::dl_library_path;'

Убедитесь, что ваш libpq.5.so попадает в одну из них. strace также покажет, возвращает ли ядро ​​ошибку DynaLoader, что оно скрывается; более того, он обязательно расскажет вам все, что знает DynaLoader.

0 голосов
/ 22 января 2010

Я знаю, что многие люди ответили на ваш вопрос, но я решил добавить еще одну вещь. Makefile.PL находит библиотеки postgres, выполняя pg_config. Если это не может быть найдено на вашем пути, то вы найдете такого рода ошибки. Интересно, что заголовки выглядят одинаково. Попробуйте запустить pg_config с вашего терминала и посмотрите, что выводится. Если он не найден на вашем пути, найдите его, добавьте к своему пути и попробуйте собрать DBD::Pg снова

0 голосов
/ 21 января 2010

Убедитесь, что путь к библиотеке PostgreSQL указан либо в ld.so.conf, либо в файле в ld.so.conf.d, и перезапустите sudo ldconf (или sudo / sbin / ldconf). Это позаботилось об этой проблеме, когда я столкнулся с ней в прошлом.

0 голосов
/ 21 января 2010

Файл libpq.so.5 отсутствует, что указывает на то, что у вас не установлена ​​клиентская библиотека Postgresql. В Ubuntu этот файл предоставляется пакетом libpq5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...