psql: error while loading shared libraries: psql: undefined symbol: get_progname

Started by Kelvin T. Leungover 20 years ago2 messagesgeneral
Jump to latest
#1Kelvin T. Leung
kelvin@cs.ucla.edu

Hi,

I am new to postgres. I hope that ppl out there can give me some help.

I have installed postgres on my system, which runs with Fedora 2 on a
P-IV machine.

I have created a postgres account. I am able to use psql (under
postgres a/c) without any problem.

I have created another postgres user account using my OS login name and
have given it all the
permission to create user and database.

Now, I am unable to run psql using my own OS login a/c. And I get an
error message:

psql: error while loading shared libraries: psql: undefined symbol:
get_progname

I check LD_LIBRARY_PATH and it has /usr/local/pgsql/lib in the path.

Any idea what went wrong?

I tried to use

psql -d test -U kelvin -W xxxx

I still get the same error message.

Thanks.
-Kelvin

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Kelvin T. Leung (#1)
Re: psql: error while loading shared libraries: psql: undefined symbol: get_progname

"Kelvin T. Leung" <kelvin@cs.ucla.edu> writes:

Now, I am unable to run psql using my own OS login a/c. And I get an
error message:
psql: error while loading shared libraries: psql: undefined symbol:
get_progname

This is a version-skew issue: you are trying to use a psql executable
with a libpq.so library that's older or newer (I forget which) than the
psql executable is.

I check LD_LIBRARY_PATH and it has /usr/local/pgsql/lib in the path.

On Fedora (and other Linuxen) you should basically never rely on
LD_LIBRARY_PATH, for exactly the reason you're seeing here: programs
work or fail depending on environment. The correct way is to set up
the ldconfig search path to include directories where shared libraries
exist.

Also, it'd probably be a good idea to make sure you have only one set
of Postgres executables+shared libraries on the machine. You've
evidently got at least two :-(

regards, tom lane