Using PostgreSQL package in OpenBSD environment:
------------------------------------------------
If you are installing PostgreSQL for the first time, the following steps
required:
1. Create PostgreSQL user and group:
# adduser -batch pgsql "" "PostgreSQL pseudo-user" "*" \
-home /var -noconfig -group pgsql -shell nologin
2. Initialize PostgreSQL databases:
# install -d -o pgsql -g pgsql -m 755 /var/pgsql
# install -d -o pgsql -g pgsql -m 700 /var/pgsql/data
# pgwrap initdb
If you are upgrading PostgreSQL you don't need these steps. Read
!!PREFIX!!/share/doc/pgsql/INSTALL for more information on how to
upgrade your existing databases. See also `Special notes for OpenBSD
port' below.
If you wish to start PostgreSQL automatically during system startup,
add the following lines to /etc/rc.local:
if [ -x !!PREFIX!!/bin/pgwrap -a -x !!PREFIX!!/bin/postmaster ]; \
then
!!PREFIX!!/bin/pgwrap -o /var/pgsql/log \
pg_ctl -w -o "-i -S -o -F" start
echo -n ' pgsql'
fi
Don't forget to add !!PREFIX!!/lib/pgsql directory to shared libraries path in
/etc/rc.conf (if your architecture supports shared libraries):
shlib_dirs="!!PREFIX!!/lib/pgsql"
Be shure to update your /etc/man.conf to read SQL functions manual pages:
#PostgreSQL man pages
_build .l /usr/bin/nroff -man %s
l !!PREFIX!!/pgsql/man/manl
Please note that OpenBSD port of PostgreSQL requires a kernel compiled
with SYSVMSG, SYSVSEM and SYSVSHM options for proper operation.
The GENERIC kernel contains these options.
Special notes for OpenBSD port:
-------------------------------
OpenBSD port of PostgreSQL does NOT use shell startup files to
set up environment for postgres administrative programs (such as
initdb). This mean that you should use a wrapper program `pgwrap'
to run these programs instead of `su'. For example, you
should execute
# pgwrap initdb
instead of
# su -l pgsql -c 'exec initdb'
The `pgwrap' automatically sets up proper environment and permissions
for PostgreSQL programs. The syntax for `pgwrap' program is:
pgwrap [-n] [-o file] cmd [arg ...]
-n - Do not add PostgreSQL binary prefix to cmd.
-o file - Redirect stdout & stderr to file (write permissions
for PostgreSQL user required).
`pgwrap' automatically sets up the following environment variables:
System variables (these variables are always set to the following values):
PATH=!!PREFIX!!/bin:/bin:/usr/bin
USER=pgsql
LOGNAME=pgsql
SHELL=/bin/sh
HOME=/var/pgsql
PostgreSQL variables (these variables are set to the following values,
unless already set):
PGLIB=!!PREFIX!!/lib/pgsql
PGDATA=/var/pgsql/data
You must have root privilegies to run `pgwrap'.