I'm making a "relocatable" Postgres binary distribution for my clients. Everything goes into postgresql-7.4.1/ directory, including libraries and binaries. This will be installed by a non-privileged user under his own home directory. The goal is that they could just extract the tarball, adjust PATH if he wants, and then just run initdb + pg_ctl start.

For binaries like bin/psql or bin/pg_vacuum that needs libpq.so, I've created a C wrapper that first sets LD_LIBRARY_PATH to a relative path (../lib/) and then exec() the real binary (moved to bin/psql.real or bin/pg_vacuum.real).

However, it would be nice if $libdir could be relative to the binary too. Or if there were special token too like $HOME or $execdir or $datadir that can be used in PL declaration or in postgresql.conf:

 dynamic_library_path = '$execdir/../lib'
 unix_socket_directory = '$HOME/tmp' # or e.g. '$datadir/../tmp'

Where $execdir is the path of the postmaster currently running, and $datadir is the current data directory (value of -D of postmaster/pg_ctl command).

(Also, I'd appreciate if someone could explain how this 'relocatability' issue is/will be tackled on Win32 port).

--
dave

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to