Runtime Environment
This chapter outlines the interaction between Postgres and
the operating system.
Using Postgres from Unix
All Postgres commands that are executed
directly from a Unix shell are
found in the directory .../bin. Including this directory in
your search path will make executing the commands easier.
A collection of system catalogs exist at each site. These include a
class (pg_user) that contains an instance for each valid
Postgres user. The instance specifies a set of
Postgres privileges, such as
the ability to act as Postgres super-user,
the ability to create/destroy
databases, and the ability to update the system catalogs. A Unix
user cannot do anything with Postgres
until an appropriate instance is
installed in this class. Further information on the system catalogs
is available by running queries on the appropriate classes.
System LayoutPostgres file layout
shows how the Postgres distribution is laid
out when installed in the default way. For simplicity,
we will assume that Postgres
has been installed in the
directory /usr/local/pgsql. Therefore, wherever
you see the directory /usr/local/pgsql you should
substitute the name of the directory where
Postgres is
actually installed.
All Postgres commands are installed
in the directory
/usr/local/pgsql/bin. Therefore, you should add
this directory to your shell command path. If you use
a variant of the Berkeley C shell, such as csh or tcsh,
you would add
set path = ( /usr/local/pgsql/bin path )
in the .login file in your home directory. If you use
a variant of the Bourne shell, such as sh, ksh, or
bash, then you would add
PATH=/usr/local/pgsql/bin PATH
export PATH
to the .profile file in your home directory.
From now on, we will assume that you have added the
Postgres bin directory to your path.
In addition, we
will make frequent reference to "setting a shell
variable" or "setting an environment variable" throughout
this document. If you did not fully understand the
last paragraph on modifying your search path, you
should consult the UNIX manual pages that describe your
shell before going any further.
If you have not set things up in the
default way, you may have some more work to do.
For example, if the database server machine is a remote machine, you
will need to set the PGHOST environment variable to the name
of the database server machine. The environment variable
PGPORT may also have to be set. The bottom line is this: if
you try to start an application program and it complains
that it cannot connect to the postmaster,
you must go back and make sure that your
environment is properly set up.