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.
安装DBD::Pg perl模块时是否有类似的错误?我能做什么来修理它?
最佳答案
您应该使用perl来解决这些动态链接问题。使用strace program &> out
,然后对libpq.so.5
使用grep。我猜您的libpq.so.5
位置不对,或者您的DynaLoader配置错误。阅读@dl_library_path
上的文档。
您可以看到您的搜索路径(strace还将显示它试图查找。因此,通过检查每个目录):
perl -MDynaLoader -le'print for @DynaLoader::dl_library_path;'
确保你的
libpq.5.so
落入其中之一。strace
还将显示内核是否正在向DynaLoader返回一个隐藏的错误;此外,它肯定会告诉您DynaLoader知道的一切。关于perl - 为什么在DynaLoader中安装DBD::Pg失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2110435/