Thread: Big problem about libpq.so.2.1, ldconfig and ldd
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
> 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
> On a machine with 7.0.2, we have this :Well, all the files were good. It was as it should be. It is strange.
>
> 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.soIt 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.1Hmm, 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
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