Search Postgresql Archives

Re: dependency on 32 bit libpq.so on 64 bit Postgres server.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Title: RE: [GENERAL] dependency on 32 bit libpq.so on 64 bit Postgres server.
thanks a lot i followed your instruction i have put the 32 bit libpq.so.4 in a separate folder which is pointed to by
LD_LIBRARY_PATH
and the exe functions.
 
thanks,
regards
Surabhi 


From: Albe Laurenz [mailto:all@xxxxxxxxxxxxxxxxx]
Sent: Fri 11/17/2006 3:12 PM
To: surabhi.ahuja; pgsql-general@xxxxxxxxxxxxxx
Subject: RE: [GENERAL] dependency on 32 bit libpq.so on 64 bit Postgres server.

> let me explain with an example
> say i have a 32 bit exceutable called Installer

> it dynamically links to 4 libraries which are called:
> libdbx1, it is dependent on (ROOT)/postgres/arch/$(ARCH)d/lib -lpq
(specified in the makefile)
> libdbx2, it is also dependent on (ROOT)/postgres/arch/$(ARCH)d/lib
-lpq (specified in the makefile)
> libdbx3
> libdbx4

> the above directory (ROOT)/postgres/arch/$(ARCH)d/lib

> has libpq.so which i got by installing the 32 bit Postgres 8.1.5 on
fc4
> its sixe is : 116532

> now i put these 4 libs and the exe in the target mach
> and i run the executable Installer

> the traget m/c is FC4 has Postgres 8.1.5 installed which is 64 bit

> so it has libpq.so.4 and libpq.so.4.1 in /usr/lib64/ of that machine.

> rwxrwxrwx  1 root root     12 Nov 16 15:11 libpq.so.4 -> libpq.so.4.1*
> -rwxr-xr-x  1 root root 135960 Nov 16 00:30 libpq.so.4.1*

> so when i run the exe it gives me this error:

> | 2006-11-17 13:56:18.085 | 5659:1436573184 | DMF | 0 | ERROR
> | error@dmf | DMFConcreteRepositoryCreatorFactory.cxx:77 |
> Cannot find library for dbexpress: libpq.so.4: cannot open
> shared object file: No such file or directory
> | 2006-11-17 13:56:18.085 | 5659:1436573184 | DMF | 0 | ERROR
> | error@dmf | DMFConcreteRepositoryCreatorFactory.cxx:122 |
> Unknown repository: dbexpress

I see.

You will need the 32-bit library libpq.so.4 to run your installer
executable.

You can copy this library to some other place on the machine with the
64-bit libpq.so (I assume it is the database server) and try to make the
executable use this library.

First, check if the installer executable or libdbx<n> has an RPATH set:

objdump -p -j .dynstr <executable>|egrep RUNPATH\|RPATH

If yes, and it points to the location of the 64-bit library, you are out
of
luck and the only solution I can see is to install the server in another
directory...

If no, or the RPATH points somewhere else, you can use the environment
variable
LD_LIBRARY_PATH to make the installer executable use the correct
libpq.so.4:

env LD_LIBRARY_PATH=/location/of/32bit/lib <executable>

Yours,
Laurenz Albe


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux