Niru Niru - 7 months ago 44
Perl Question

Can't load

I am getting this exception:

Can't load '/usr/perl/lib/site_perl/5.8/x86_64-linux/auto/DBD/Oracle/' for module DBD::Oracle: cannot open shared object file:
No such file or directory at
/.../perl/lib/5.8/x86_64-linux/ line 169

If I do ls -ltr /.../perl/lib/site_perl/5.8/x86_64-linux/auto/DBD/Oracle/ I see that the file is there. The process I am running also sets LD_LIBRARY_PATH before attempting to connect. A build and deploy on another machine doesn't produce the same error and runs fine. Running uname -sm gives Linux x86_64 on both machines. Is there something else that could cause this error?


It looks like DBD::Oracle's is trying to open and can't find it. So you need to find out if that version of the shared library is installed.

Perform the following command:

$ locate

You should get a list of files beginning with If you are lucky , will be among the results, and then you'll need to make sure that the directory that it lives in is on you load path. For instance my server has:

 $ locate

If locate fails completely, you can build the database using updatedb or you can try using find:

 find / -name '*' -print 

Use a pager or redirect stderr to a file because you might end up dealing with a lot of error messages from find, which is okay, but using less will allow you to just refresh the screen to see find's output.