February 22nd, 2013, 03:40 PM
Problem interpreting CPAN error message
I'm trying to install the component DBD::Pg on a SuSE machine via CPAN, and I'm getting an error message I'm having a tough time trying to interpret.
I've tried tracking it down online, but the closest thing I've been able to come up with was a reference in the DBD::Pg readme file indicating a similar error message. In that case, the solution was to include the library paths directly, in the ld.so.conf file. I did so (including running ldconfig afterwards), but I'm still getting this message. Beyond that, while I'm seeing a few bug reports online with the 'undefined symbol: lo_import_with_oid' portion of the error message, I'm having trouble finding anything on it that appears to have been resolved.
Error: Can't load '/root/.cpan/build/DBD-Pg-2.19.3/blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: /root/.cpan/build/DBD-Pg-2.19.3/blib/arch/auto/DBD/Pg/Pg.so: undefined symbol: lo_import_with_oid at /usr/lib/perl5/5.8.1/i586-linux-thread-multi/DynaLoader.pm line 229.
Would anyone here be willing to help me figure out what it is I'm missing about this error message, and where to turn next in figuring it out and resolving the situation?
February 22nd, 2013, 05:00 PM
What version of PostgreSQL is installed on that machine?
February 24th, 2013, 10:59 PM
The lo_import_with_oid feature was added at PostgreSQL 8.4, so if you have a version older than that, it isn't supported.
But I believe the intent was that DBD::Pg would still compile and install to older versions, but there is a current bug:
You could possibly install an older version of DBD::Pg, or upgrade Postgres.
Comments on this post
February 26th, 2013, 11:16 AM
keath, thanks for the assistance. Your advice helped me to track down an older version of the module to install, which did install successfully and permit me to run at least one of the programs I was working on. (Haven't tried all of them yet.)
I appreciate the help.