This is my first post on here so sorry if I don't provide all the information required first time round!
My boss and I have been trying to install plperl on our postgres installation on one of our servers (Centos 6.5, Postgres 9.2.1, Perl 5.10.1) and we keep running into the same problem which is as follows:
ERROR: could not load library "/opt/PostgreSQL/9.2/lib/postgresql/plperl.so":
/opt/PostgreSQL/9.2/lib/postgresql/plperl.so: undefined symbol: Perl_sv_2bool_flags
This error is returned when we try and install the language (create language plperl;) either through SQL or using the PgAdmin III GUI.
I have checked that we have a lperl.so
file in /opt/PostgreSQL/9.2/lib/postgresql/
as well as looking for libperl.so
as most posts pertaining to this problem suggest. I have tried placing libperl.so
in lots of different places as every man and his dog has a different suggestion as to where it should be placed.
Running ldd /opt/PostgreSQL/9.2/lib/postgresql/plperl.so
returns the following:
ldd /opt/PostgreSQL/9.2/lib/postgresql/plperl.so
linux-vdso.so.1 => (0x00007fff2d9b7000)
libperl.so => /lib64/libperl.so (0x00007f8ab5c11000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8ab59f3000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8ab565f000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f8ab5445000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f8ab522b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8ab5027000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8ab4da3000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f8ab4b6b000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f8ab4968000)
/lib64/ld-linux-x86-64.so.2 (0x00000034aa800000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f8ab46f1000)
I don't think the versions of Postgres and Perl are a problem a we have another server running Centos 6.5, Postgres 9.3 and Perl 5.10.1 with pl/perl running perfectly (I've also tried looking at what's going on there to fix this but cant work it out).
From what I can tell, Postgres is expecting libperl.so to be in /lib64 however when Perl was installed it was installed somewhere else. At the moment Postgres is the only thing which will be using libperl.so
Unfortunately I don't know how everything was installed on this server as my boss set everything up before I joined the company and he has only just decided we actually need to get it working.
From looking at both our servers, I can't see any differences in the installations and configurations which would cause one to work and one to not.
I'm pretty much at my wits end with this (Its the last problem we need to fix with the Postgres install), so any suggestions would be appreciated.
Cheers