Thread: Big problem about libpq.so.2.1, ldconfig and ldd

Big problem about libpq.so.2.1, ldconfig and ldd

From
Richard NAGY
Date:
Hello,

How to solve this ? Please, please, it is urgent. We are in a big trouble!

We have noticed a strange behavior.
On a machine with 7.0.2, we have this :

ldconfig -p |grep libpq.so
        libpq.so.2.1 (libc6) => /usr/local/pgsql/lib/libpq.so.2.1
        libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
        libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so
 
On an other machine with 7.1.3, we have this :

ldconfig -p |grep libpq.so
        libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
        libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so

The interresting thing is the lack of the line : libpq.so.2.1 (libc6) => /usr/local/pgsql/lib/libpq.so.2.1

But, it is the source of our problems. Our programs compiled on the first machine do not work on the second one!
Well, not any more due to ???

Have you got an advice about this?

Thank you very much. (it is urgent)

Note : you can consult a previous mail of me about this.

--
Richard NAGY
Presenceweb / Nameshield
 

Re: Big problem about libpq.so.2.1, ldconfig and ldd

From
Boban Acimovic
Date:
> On a machine with 7.0.2, we have this :
>
> ldconfig -p |grep libpq.so
>         libpq.so.2.1 (libc6) => /usr/local/pgsql/lib/libpq.so.2.1
>         libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
>         libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so
>
> On an other machine with 7.1.3, we have this :
>
> ldconfig -p |grep libpq.so
>         libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
>         libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so

It should be like this:

lrwxrwxrwx   1 root     other         12 des 10 14:58 libpq.so ->
libpq.so.2.1
lrwxrwxrwx   1 root     other         12 des 10 14:58 libpq.so.2 ->
libpq.so.2.1
-rwxr-xr-x   1 root     other      78114 des 10 14:58 libpq.so.2.1

Hmm, why don't you go to /usr/local/pgsql/lib on your second machine and
do "ls -la libpq*". Then figure out what is the real file and what is
the symbolic link. Rename the real file to libpq.so.2.1 and then make
two symbolic links libpq.so and libpq.so.2 to point to libpq.so.2.1.
This is something wrong with your installation on the second machine,
but this should resolve the problem. This basically has nothing to do
with Postgres (although it is about Postgres library), but this is plain
Unix problem with loading libraries.

Regards,
Boban Acimovic
www.mbl.is


Re: Big problem about libpq.so.2.1, ldconfig and ldd

From
Richard NAGY
Date:
Boban Acimovic wrote :
> On a machine with 7.0.2, we have this :
>
> ldconfig -p |grep libpq.so
>         libpq.so.2.1 (libc6) => /usr/local/pgsql/lib/libpq.so.2.1
>         libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
>         libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so
>
> On an other machine with 7.1.3, we have this :
>
> ldconfig -p |grep libpq.so
>         libpq.so.2 (libc6) => /usr/local/pgsql/lib/libpq.so.2
>         libpq.so (libc6) => /usr/local/pgsql/lib/libpq.so

It should be like this:

lrwxrwxrwx   1 root     other         12 des 10 14:58 libpq.so ->
libpq.so.2.1
lrwxrwxrwx   1 root     other         12 des 10 14:58 libpq.so.2 ->
libpq.so.2.1
-rwxr-xr-x   1 root     other      78114 des 10 14:58 libpq.so.2.1

Hmm, why don't you go to /usr/local/pgsql/lib on your second machine and
do "ls -la libpq*". Then figure out what is the real file and what is
the symbolic link. Rename the real file to libpq.so.2.1 and then make
two symbolic links libpq.so and libpq.so.2 to point to libpq.so.2.1.
This is something wrong with your installation on the second machine,
but this should resolve the problem. This basically has nothing to do
with Postgres (although it is about Postgres library), but this is plain
Unix problem with loading libraries.

Regards,
Boban Acimovic
www.mbl.is

Well, all the files were good. It was as it should be. It is strange.

But the good news is that I have found one solution :

I have rename libpq.so.2.1 to libpq.so.2.1.good
Then, I have deleted the 2 old symbolic links and created 3 (yes 3!!) new ones.
libpq.so -> libpq.so.2.1.good
libpq.so.2 -> libpq.so.2.1.good

and the most important one (for my problem) : libpq.so.2.1 -> libpq.so.2.1.good

I have typed ldconfig and everything works well!!

Strange isn't it ?

--
Richard NAGY
Presenceweb / Nameshield