Skip site navigation (1) Skip section navigation (2)

Re: Not quite there yet

From: Mladen Gogala <mladen(dot)gogala(at)vmsinfo(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-novice(at)postgresql(dot)org" <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Not quite there yet
Date: 2010-09-27 02:13:21
Message-ID: 4C9FFDC1.3060901@vmsinfo.com (view raw or flat)
Thread:
Lists: pgsql-novice
Tom Lane wrote:
> Mladen Gogala <mladen(dot)gogala(at)vmsinfo(dot)com> writes:
>   
>> -bash-3.2$ less /opt/PostgreSQL/9.0/data/loadable_libraries.txt
>> Failed to load library: $libdir/plperl
>> ERROR:  could not load library "/opt/PostgreSQL/9.0/lib/postgresql/
>> plperl.so": libperl.so: cannot open shared object file: No such file or
>> directory
>>     
>
> Apparently you don't have the same version of Perl as that installer
> was built against, or you do but there's some rpath-ish issue preventing
> plperl.so from finding it.  On a Linux-like system, you might learn
> something from
> ldd /opt/PostgreSQL/9.0/lib/postgresql/plperl.so
>
> 			regards, tom lane
>   
Here is the output of ldd, the libperl.so cannot be resolved:
**************************************************************************
[root(at)medo tmp]# ldd /opt/PostgreSQL/9.0/lib/postgresql/plperl.so
        linux-gate.so.1 =>  (0x003cb000)
        libperl.so => not found
        libnsl.so.1 => /lib/libnsl.so.1 (0x00aa2000)
        libdl.so.2 => /lib/libdl.so.2 (0x003d7000)
        libm.so.6 => /lib/libm.so.6 (0x00ce5000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00110000)
        libutil.so.1 => /lib/libutil.so.1 (0x001c5000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x005b2000)
        libc.so.6 => /lib/libc.so.6 (0x001e7000)
        /lib/ld-linux.so.2 (0x00a1c000)

If I try the same thing with the plperl library from 8.4.4, it gives me 
this:
**************************************************************************************
-bash-3.2$ ldd /usr/lib/pgsql/plperl.so
        linux-gate.so.1 =>  (0x00d4d000)
        libperl.so => 
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so (0x00110000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x005ee000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00ed4000)
        libdl.so.2 => /lib/libdl.so.2 (0x00fcb000)
        libm.so.6 => /lib/libm.so.6 (0x00639000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x004f6000)
        libutil.so.1 => /lib/libutil.so.1 (0x00dc7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00c82000)
        libc.so.6 => /lib/libc.so.6 (0x00242000)
        /lib/ld-linux.so.2 (0x00a1c000)
*****************************************************************************
I tried with setting LD_LIBRARY_PATH to 
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE, it didn't help much. 
Now, there is a problem with unresolved symbols:
-bash-3.2$ less /opt/PostgreSQL/9.0/data/loadable_libraries.txt
Failed to load library: $libdir/plperl
ERROR:  could not load library 
"/opt/PostgreSQL/9.0/lib/postgresql/plperl.so": 
/opt/PostgreSQL/9.0/lib/postgresql/plperl.so: undefined symbol: 
boot_DynaLoader

Apparently, you're right, this is a version problem. This is a plain 
vanilla CentOS 5.5 system. I can't just install the RPM packages because 
my  old database will be destroyed and I don't want that. Do you know 
which system was this installer built on and which version of Perl does 
it expect? Problem with the Red Hat system and its derivatives, like 
CentOS, is that Postgres is installed on var/lib/pgsql, without regard 
to the version string. That means that I can't just install the new RPM 
packages because my /var/lib/pgsql/data would get overwritten and there 
would be no old binaries. Building it from the source looks like the 
only remaining option. I will try relinking just plperl, this binary 
installer  looks like it contains the full development package. 
Unforunately,  PgFoundry only contains sources for PgSQL 7 and 8, no 
trace of the code for the version 9. That leads me to the conclusion 
that I should wait a bit before upgrading any of my existing 8.4.4 
databases to 9.0. Here is my OS version:
***********************************************************************************
-bash-3.2$ uname -a
Linux medo 2.6.18-194.11.4.el5PAE #1 SMP Tue Sep 21 05:48:23 EDT 2010 
i686 athlon i386 GNU/Linux
-bash-3.2$ cat /etc/redhat-release
CentOS release 5.5 (Final)
-bash-3.2$
*******************************************************************************
I used this system to test at home because the vast majority of my 
Postgres databases in the office are running on Red Hat 5.5 systems.

-- 
Mladen Gogala 
Sr. Oracle DBA
1500 Broadway
New York, NY 10036
(212) 329-5251
www.vmsinfo.com 


In response to

Responses

pgsql-novice by date

Next:From: Tom LaneDate: 2010-09-27 02:19:06
Subject: Re: Not quite there yet
Previous:From: Tom LaneDate: 2010-09-27 00:47:37
Subject: Re: Not quite there yet

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group