I am afraid it gets crazier...

I put /home/pramsey/pgtest/8.0/bin on my $PATH
Now:

[EMAIL PROTECTED] 8.0]$ pg_config --pkglibdir
/home/pramsey/pgtest/8.0/lib/postgresql

Hm, correct.

[EMAIL PROTECTED] 8.0]$ ./bin/pg_config --pkglibdir
/home/pramsey/pgtest/8.0/./lib/postgresql

Also correct, but getting strangely relative.

[EMAIL PROTECTED] 8.0]$ cd bin
[EMAIL PROTECTED] bin]$ ./pg_config --pkglibdir
/home/pramsey/pgtest/8.0/bin/lib/postgresql

Now incorrect. The answer depends on where I am asking from.

[EMAIL PROTECTED] bin]$ ./pg_config --bindir
/home/pramsey/pgtest/8.0/bin/.

Using the direct request. Using the $PATH assisted request:

[EMAIL PROTECTED] bin]$ pg_config --bindir
/home/pramsey/pgtest/8.0/bin

Entirely correct.

Problem solved? No...

[EMAIL PROTECTED] 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!

[EMAIL PROTECTED] 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?





---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to