question about 2 versions and libraries

Started by Tina Messmannalmost 24 years ago6 messagesgeneral
Jump to latest
#1Tina Messmann
tina.messmann@xinux.de

Hello List,
i have version 7.1.3 (debian package) and version 7.2.1 (compiled from
source) an the same box.
both versions (server and client programs) use the libs from the debian
installation.
i found a few postings with this topic and there is said to set
LD_LIBRARY_PATH to the correct lib path.
i did this but still the libs from the debian installation are used
(despite of libpg.so.2):

arwen:~# set |grep LD
LD_LIBRARY_PATH=/usr/local/postgresql7.2.1/lib
arwen:~# ldd /usr/local/postgresql7.2.1/bin/psql
libpq.so.2 => /usr/local/postgresql7.2.1/lib/libpq.so.2 (0x40016000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x400d8000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40105000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40117000)
libdl.so.2 => /lib/libdl.so.2 (0x4012c000)
libm.so.6 => /lib/libm.so.6 (0x40130000)
libreadline.so.4 => /lib/libreadline.so.4 (0x40152000)
libc.so.6 => /lib/libc.so.6 (0x40178000)
libncurses.so.5 => /lib/libncurses.so.5 (0x4029b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
arwen:~#

and another problem is arising with LD_LIBRARY_PATH set
(unix_socket_directory is set to /var/run/postgresql in postgresql.conf):

arwen:~# /usr/local/postgresql7.2.1/bin/psql -p 6543 template1
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.6543"?
arwen:~#

Any hints??

Regards
Tina

ps: i am not getting mails from the list since yesterday , are there any
problems?

#2Oliver Elphick
olly@lfix.co.uk
In reply to: Tina Messmann (#1)
Re: question about 2 versions and libraries

On Mon, 2002-05-27 at 09:25, Tina Messmann wrote:

Hello List,
i have version 7.1.3 (debian package) and version 7.2.1 (compiled from
source) an the same box.

There is a Debian package of 7.2.1

both versions (server and client programs) use the libs from the debian
installation.
i found a few postings with this topic and there is said to set
LD_LIBRARY_PATH to the correct lib path.
i did this but still the libs from the debian installation are used
(despite of libpg.so.2):

arwen:~# set |grep LD
LD_LIBRARY_PATH=/usr/local/postgresql7.2.1/lib
arwen:~# ldd /usr/local/postgresql7.2.1/bin/psql
libpq.so.2 => /usr/local/postgresql7.2.1/lib/libpq.so.2 (0x40016000)

This is from /usr/local (that is, your local build and not the Debian
package). What is the problem?

libcrypt.so.1 => /lib/libcrypt.so.1 (0x400d8000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40105000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40117000)
libdl.so.2 => /lib/libdl.so.2 (0x4012c000)
libm.so.6 => /lib/libm.so.6 (0x40130000)
libreadline.so.4 => /lib/libreadline.so.4 (0x40152000)
libc.so.6 => /lib/libc.so.6 (0x40178000)
libncurses.so.5 => /lib/libncurses.so.5 (0x4029b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
arwen:~#

and another problem is arising with LD_LIBRARY_PATH set
(unix_socket_directory is set to /var/run/postgresql in postgresql.conf):
arwen:~# /usr/local/postgresql7.2.1/bin/psql -p 6543 template1
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.6543"?

Have you started the postmaster on that port?

Are you looking at the right postgresql.conf? The Debian file
/etc/postgresql/postgresql.conf is the target of a symbolic link from
$PGDATA/postgresql.conf. The file you need to change is in the PGDATA
for your 7.2.1 postmaster. If you want it to be the same as for the
Debian package, you must make a symbolic link there to
/etc/postgresql/postgresql.conf. Otherwise it will use the default
created by initdb.

Have you got PGDATA set correctly in both your client and your
postmaster environments?

--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C

"All that the Father giveth me shall come to me; and
him that cometh to me I will in no wise cast out."
John 6:37

#3Tina Messmann
tina.messmann@xinux.de
In reply to: Tina Messmann (#1)
Re: question about 2 versions and libraries

Oliver Elphick wrote:

On Mon, 2002-05-27 at 09:25, Tina Messmann wrote:

Hello List,
i have version 7.1.3 (debian package) and version 7.2.1 (compiled from
source) an the same box.

There is a Debian package of 7.2.1

i know this, but i want to keep the old version as long as i know that
everything is working with 7.2.1

[snip....]

This is from /usr/local (that is, your local build and not the Debian
package). What is the problem?

uh...no problem, sorry about that...
[snip...]

and another problem is arising with LD_LIBRARY_PATH set
(unix_socket_directory is set to /var/run/postgresql in postgresql.conf):
arwen:~# /usr/local/postgresql7.2.1/bin/psql -p 6543 template1
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.6543"?

Have you started the postmaster on that port?

yes. 7.1.3 (deb package) is listening on 5432, 7.2.1 (from tarball) is
listening on 6543

Are you looking at the right postgresql.conf? The Debian file
/etc/postgresql/postgresql.conf is the target of a symbolic link from
$PGDATA/postgresql.conf. The file you need to change is in the PGDATA
for your 7.2.1 postmaster. If you want it to be the same as for the
Debian package, you must make a symbolic link there to
/etc/postgresql/postgresql.conf. Otherwise it will use the default
created by initdb.

arwen:~# cat /var/lib/postgres7.2.1/data/postgresql.conf |grep unix_socket_dir
unix_socket_directory = '/var/run/postgresql'
arwen:~#

i solved this problem now by setting PGHOST to /var/run/postgresql (is
this the common solution?)

Have you got PGDATA set correctly in both your client and your
postmaster environments?

no, i didn'd do that, where is the best place to set this variable for
the client environment? is it .profile or profile?
but what happens when then calling the debian version? hmmm...should be
no problem, since the commands from the debian package uses a wrapper
that sets the environment correctly, am i right with that?

Thank you for the help.
Tina

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tina Messmann (#3)
Re: question about 2 versions and libraries

Tina Messmann <tina.messmann@xinux.de> writes:

i solved this problem now by setting PGHOST to /var/run/postgresql (is
this the common solution?)

If you want to run with a nonstandard socket file location, you have
to tell both postmaster and psql at runtime (psql cannot see the
postgresql.conf file, so you have to tell it separately). Possibly
a better answer is to make the socket file location standard by altering
DEFAULT_PGSOCKET_DIR in src/include/pg_config.h before you build.

regards, tom lane

#5Oliver Elphick
olly@lfix.co.uk
In reply to: Tina Messmann (#3)
Re: question about 2 versions and libraries

On Mon, 2002-05-27 at 14:34, Tina Messmann wrote:

Oliver Elphick wrote:

Are you looking at the right postgresql.conf? The Debian file
/etc/postgresql/postgresql.conf is the target of a symbolic link from
$PGDATA/postgresql.conf. The file you need to change is in the PGDATA
for your 7.2.1 postmaster. If you want it to be the same as for the
Debian package, you must make a symbolic link there to
/etc/postgresql/postgresql.conf. Otherwise it will use the default
created by initdb.

arwen:~# cat /var/lib/postgres7.2.1/data/postgresql.conf |grep unix_socket_dir
unix_socket_directory = '/var/run/postgresql'
arwen:~#

i solved this problem now by setting PGHOST to /var/run/postgresql (is
this the common solution?)

Have you got PGDATA set correctly in both your client and your
postmaster environments?

no, i didn'd do that, where is the best place to set this variable for
the client environment? is it .profile or profile?

That depends on your shell: .profile for sh, .bash_profile for bash, and
so on.

but what happens when then calling the debian version? hmmm...should be
no problem, since the commands from the debian package uses a wrapper
that sets the environment correctly, am i right with that?

No, PGDATA in the environment should override the wrapper.

Best to create a testing script to set up the environment. Call it
psql721 and make sure it is in your path:

#!/bin/sh
PGDATA=/usr/local/pgsql/data
PGPORT=6543
PGHOST=
PGLIB=/usr/local/pgs1ql/lib
PATH=/usr/local/pgsql/bin:$PATH
LD_LIBRARY_PATH=$PGLIB:$LD_LIBRARY_PATH
export PGDATA PGPORT PGHOST PGLIB PATH LD_LIBRARY_PATH
psql $@

--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C

"All that the Father giveth me shall come to me; and
him that cometh to me I will in no wise cast out."
John 6:37

#6Tina Messmann
tina.messmann@xinux.de
In reply to: Tina Messmann (#1)
Re: question about 2 versions and libraries

Oliver Elphick wrote:

On Mon, 2002-05-27 at 14:34, Tina Messmann wrote:

Oliver Elphick wrote:

No, PGDATA in the environment should override the wrapper.

Indeed it does.

Best to create a testing script to set up the environment. Call it
psql721 and make sure it is in your path:

#!/bin/sh
PGDATA=/usr/local/pgsql/data
PGPORT=6543
PGHOST=
PGLIB=/usr/local/pgs1ql/lib
PATH=/usr/local/pgsql/bin:$PATH
LD_LIBRARY_PATH=$PGLIB:$LD_LIBRARY_PATH
export PGDATA PGPORT PGHOST PGLIB PATH LD_LIBRARY_PATH
psql $@

Great. I have now 2 scripts like the above one, one for 7.1.3. and one
for 7.2.1 to set the appropriate environments before starting psql.

Thanks for your help.
Tina