Re: $libdir and 8.0 - Mailing list pgsql-hackers
From | Paul Ramsey |
---|---|
Subject | Re: $libdir and 8.0 |
Date | |
Msg-id | 41243211.9060000@refractions.net Whole thread Raw |
In response to | Re: $libdir and 8.0 (Bruce Momjian <pgman@candle.pha.pa.us>) |
List | pgsql-hackers |
I am afraid it gets crazier... I put /home/pramsey/pgtest/8.0/bin on my $PATH Now: [pramsey@localhost 8.0]$ pg_config --pkglibdir /home/pramsey/pgtest/8.0/lib/postgresql Hm, correct. [pramsey@localhost 8.0]$ ./bin/pg_config --pkglibdir /home/pramsey/pgtest/8.0/./lib/postgresql Also correct, but getting strangely relative. [pramsey@localhost 8.0]$ cd bin [pramsey@localhost bin]$ ./pg_config --pkglibdir /home/pramsey/pgtest/8.0/bin/lib/postgresql Now incorrect. The answer depends on where I am asking from. [pramsey@localhost bin]$ ./pg_config --bindir /home/pramsey/pgtest/8.0/bin/. Using the direct request. Using the $PATH assisted request: [pramsey@localhost bin]$ pg_config --bindir /home/pramsey/pgtest/8.0/bin Entirely correct. Problem solved? No... [pramsey@localhost bin]$ createlang plpgsql test ERROR: could not access file "$libdir/plpgsql": No such file or directory createlang: language installation failed: ERROR: could not access file "$libdir/plpgsql": No such file or directory If I copy plpgsql.so into /home/pramsey/pgtest/8.0/lib then things work. Bruce Momjian wrote: > Ah, what is your $bindir? Is it /home/pramsey/pgtest/8.0/bin/postgresql? > > --------------------------------------------------------------------------- > > Paul Ramsey wrote: > >>Check this out! >> >>[pramsey@localhost bin]$ ./pg_config --pkglibdir >>/home/pramsey/pgtest/8.0/bin/lib/postgresql >> ^^^ >> >>And yet: >> >>./port/pg_config_paths.h:#define PKGLIBDIR >>"/home/pramsey/pgtest/8.0/lib/postgresql" >> >>Could the problem be here? (port/path.c): >> >>/* >> * get_pkglib_path >> */ >>void >>get_pkglib_path(const char *my_exec_path, char *ret_path) >>{ >> const char *p; >> >> if ((p = relative_path(PGBINDIR, PKGLIBDIR))) >> make_relative(my_exec_path, p, ret_path); >> else >> StrNCpy(ret_path, PKGLIBDIR, MAXPGPATH); >> canonicalize_path(ret_path); >>} >> >> >>Bruce Momjian wrote: >> >>>Devrim GUNDUZ wrote: >>> >>> >>>>Hi, >>>> >>>>On Wed, 18 Aug 2004, Paul Ramsey wrote: >>>> >>>> >>>> >>>>>When installing PgSQL into a non-standard location (like /opt/foo) the >>>>>configure script decides to install all the contrib libraries and >>>>>plpglsq into /opt/foo/lib/postgresql. This would be fine, except that >>>>>backend does not recognize this directory as a place to be searched for >>>>>$libdir (perhaps it is referencing the $libdir macro instead of the >>>>>$pkglibdir macro?). So tools like 'createlang' fail, and loading .sql >>>>>files that reference things like $libdir/libfoo.so also fail. >>>> >>>>I'm not sure but if you add /opt/foo/lib/postgresql to /etc/ld.so.conf and >>>>run ldconfig, it might work. >>> >>> >>>I checked in the code and $libdir should expand to $(pkglibdir) as >>>determined by configure. What value to you show for that in >>>your Makefile.global? >>> >> >
pgsql-hackers by date: