Thread: psql: error while loading shared libraries: psql: undefined symbol: get_progname
psql: error while loading shared libraries: psql: undefined symbol: get_progname
From
"Kelvin T. Leung"
Date:
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
Re: psql: error while loading shared libraries: psql: undefined symbol: get_progname
From
Tom Lane
Date:
"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