1996-10-30 14:01:55 +08:00
|
|
|
POSTGRESQL INSTALLATION INSTRUCTIONS
|
1997-05-07 11:15:36 +08:00
|
|
|
Copyright (c) 1997 Regents of the University of California
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
This is file /usr/src/pgsql/INSTALL. It contains notes on how to install
|
1998-04-08 05:01:28 +08:00
|
|
|
PostgreSQL v6.3.2. Up to date information on PostgreSQL may be found at
|
1997-05-07 11:15:36 +08:00
|
|
|
http://www.postgresql.org.
|
|
|
|
|
1997-05-26 08:43:41 +08:00
|
|
|
PostgreSQL is an RDBMS database server. It is not completely ANSI SQL
|
1997-05-07 11:15:36 +08:00
|
|
|
compliant, but with each release it gets closer.
|
|
|
|
|
|
|
|
PostgreSQL, formerly called Postgres95, is a derivative of Postgres 4.2
|
|
|
|
(the last release of the UC Berkeley research project). For copyright
|
|
|
|
terms for PostgreSQL, please see the file named COPYRIGHT. This version
|
1997-10-15 10:34:51 +08:00
|
|
|
was developed by a team of developers on the Postgres developers mailing
|
|
|
|
list. Version 1 (through 1.01) was developed by Jolly Chen and Andrew Yu.
|
1996-09-23 16:27:04 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
The installation notes below assume the following (except where noted):
|
1997-05-17 22:26:30 +08:00
|
|
|
- Commands are Unix-compatible. See note below.
|
|
|
|
- Defaults are used except where noted.
|
1997-10-15 10:34:51 +08:00
|
|
|
- User postgres is the Postgres superuser.
|
1997-05-17 22:26:30 +08:00
|
|
|
- The source path is /usr/src/pgsql (other paths are possible).
|
|
|
|
- The runtime path is /usr/local/pgsql (other paths are possible).
|
|
|
|
|
|
|
|
Commands were tested on RedHat Linux version 4.0 using the bash shell.
|
|
|
|
Except where noted, they will probably work on most systems. Commands
|
|
|
|
like ps and tar vary wildly on what options you should use on each
|
|
|
|
platform. USE COMMON SENSE before typing in these commands.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
Our Makefiles require GNU make (called gmake in this document) and
|
|
|
|
also assume that "install" accepts BSD options. The INSTALL
|
|
|
|
variable in the Makefiles is set to the BSD-compatible version of
|
|
|
|
install. On some systems, you will have to find a BSD-compatible
|
|
|
|
install command (eg. bsdinst, which comes with the MIT X Window System
|
|
|
|
distribution)
|
|
|
|
|
1996-09-23 16:27:04 +08:00
|
|
|
|
1996-10-30 14:01:55 +08:00
|
|
|
REQUIREMENTS TO RUN POSTGRESQL
|
1996-09-23 16:27:04 +08:00
|
|
|
------------------------------
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-10-30 14:01:55 +08:00
|
|
|
PostgreSQL has been tested on the following platforms:
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-07-14 04:00:14 +08:00
|
|
|
aix IBM on AIX 3.2.5 or 4.x
|
1997-07-15 09:02:05 +08:00
|
|
|
alpha DEC Alpha AXP on Digital Unix 2.0, 3.2, 4.0
|
1997-01-03 14:08:21 +08:00
|
|
|
BSD44_derived OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
|
1997-07-14 04:00:14 +08:00
|
|
|
bsdi BSD/OS 2.0, 2.01, 2.1, 3.0
|
1997-07-15 05:18:25 +08:00
|
|
|
dgux DG/UX 5.4R4.11
|
1997-07-29 06:37:37 +08:00
|
|
|
hpux HP PA-RISC on HP-UX 9.0, 10
|
1997-01-03 14:08:21 +08:00
|
|
|
i386_solaris i386 Solaris
|
|
|
|
irix5 SGI MIPS on IRIX 5.3
|
1997-05-17 22:26:30 +08:00
|
|
|
linux Intel x86 on Linux 2.0 and Linux ELF
|
1997-05-26 08:43:41 +08:00
|
|
|
SPARC on Linux ELF
|
1997-07-29 22:17:48 +08:00
|
|
|
PPC on Linux ELF
|
1997-01-03 14:08:21 +08:00
|
|
|
(For non-ELF Linux, see LINUX_ELF below).
|
1997-07-28 10:08:10 +08:00
|
|
|
sco SCO 3.2v5
|
1997-07-16 10:20:51 +08:00
|
|
|
sparc_solaris SUN SPARC on Solaris 2.4, 2.5, 2.5.1
|
1997-04-12 17:33:25 +08:00
|
|
|
sunos4 SUN SPARC on SunOS 4.1.3
|
1997-07-15 00:47:36 +08:00
|
|
|
svr4 Intel x86 on Intel SVR4 and MIPS
|
1997-01-03 14:08:21 +08:00
|
|
|
ultrix4 DEC MIPS on Ultrix 4.4
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-03-07 06:59:47 +08:00
|
|
|
PostgreSQL has known problems/bugs on the following platforms:
|
|
|
|
|
|
|
|
nextstep Motorola MC68K or Intel x86 on NeXTSTEP 3.2
|
|
|
|
|
1996-10-30 14:01:55 +08:00
|
|
|
PostgreSQL is also known to work on a number of other platforms that the
|
1996-09-23 16:27:04 +08:00
|
|
|
authors have not personally tested.
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-06-02 11:02:43 +08:00
|
|
|
You should have at least 8 MB of memory and at least 45 MB of disk space
|
|
|
|
to hold the source, binaries, and user databases. After installation
|
|
|
|
you may reduce this to about 3 Mbytes plus space for user databases.
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1998-03-24 00:14:50 +08:00
|
|
|
To those upgrading from PostgreSQL 6.3:
|
|
|
|
---------------------------------------
|
|
|
|
|
|
|
|
A dump/restore is NOT required for those running 6.3. A
|
|
|
|
'make distclean', 'make', and 'make install' is all that is required.
|
|
|
|
This last step should be performed while the postmaster is not running.
|
|
|
|
You should re-link any custom applications that use PostgreSQL libraries.
|
|
|
|
|
|
|
|
|
1997-09-14 10:09:10 +08:00
|
|
|
To those doing a fresh install or upgrading from previous releases of
|
|
|
|
PostgreSQL:
|
1997-05-07 11:15:36 +08:00
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
1) Read any last minute information and platform specific porting
|
|
|
|
notes. There are some platform specific notes at the end of this
|
|
|
|
file for Ultrix4.x, Linux, BSD/OS and NeXT. There are other
|
1997-05-16 06:16:45 +08:00
|
|
|
files in directory /usr/src/pgsql/doc, including files FAQ-Irix
|
|
|
|
and FAQ-Linux. Also look in directory ftp://ftp.postgresql.org/pub.
|
|
|
|
If there is a file called INSTALL in this directory then this
|
|
|
|
file will contain the latest installation information.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-06-02 11:02:43 +08:00
|
|
|
Please note that a "tested" platform in the list given earlier
|
|
|
|
simply means that someone went to the effort at some point of making
|
|
|
|
sure that a PostgreSQL distribution would compile and run on this
|
|
|
|
platform without modifying the code. Since the current developers
|
|
|
|
will not have access to all of these platforms, some of them may not
|
|
|
|
compile cleanly and pass the regression tests in the current
|
|
|
|
release due to minor problems. Any such known problems and their
|
|
|
|
solutions will be posted in ftp://ftp.postgresql.org/pub/INSTALL.
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
2) Create account postgres if it does not already exist.
|
|
|
|
|
|
|
|
3) Log into account postgres.
|
|
|
|
|
1997-06-02 11:02:43 +08:00
|
|
|
3a) Check that you have sufficient disk space. You will need about
|
|
|
|
17 Mbytes for /usr/src/pgsql, about 2 Mbytes for /usr/local/pgsql
|
|
|
|
(excluding your database) and 1 Mbyte for an empty database.
|
1998-06-09 00:48:49 +08:00
|
|
|
For the regression tests, you will need an extra 20 Mbytes.
|
|
|
|
You will also need about 3 Mbytes for the distribution tar file.
|
1997-06-02 11:02:43 +08:00
|
|
|
|
|
|
|
We therefore recommend that during installation and testing you
|
1998-06-09 00:48:49 +08:00
|
|
|
have well over 20 Mbytes free under /usr/local and another 5 MB
|
1997-06-02 11:02:43 +08:00
|
|
|
free on the disk partition containing your database. Once you
|
|
|
|
delete the source files, tar file and regression database, you
|
|
|
|
will need 2 Mbytes for /usr/local/pgsql, 1 Mbyte for the empty
|
|
|
|
database, plus about five times the space you would require to
|
|
|
|
store your database data in a flat file.
|
|
|
|
|
|
|
|
To check for disk space, use command "df -k".
|
|
|
|
|
1998-05-13 05:44:08 +08:00
|
|
|
4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-6.3.2.tar.gz from the
|
1997-10-15 10:34:51 +08:00
|
|
|
Internet. Store it in your home directory.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
5) Some platforms use flex. If your system uses flex then make sure
|
|
|
|
you have a good version. Type
|
1997-06-06 09:34:59 +08:00
|
|
|
flex --version
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
If the flex command is not found then you probably do not need it.
|
1997-05-07 11:15:36 +08:00
|
|
|
If the version is 2.5.2 or 2.5.4 or greater then you are okay. If it
|
|
|
|
is 2.5.3 or before 2.5.2 then you will have to upgrade flex. You may
|
|
|
|
get it at ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz.
|
|
|
|
|
1997-05-17 11:00:24 +08:00
|
|
|
If you need flex and don't have it or have the wrong version, then
|
|
|
|
you will be told so when you attempt to compile the program. Feel
|
|
|
|
free to skip this step if you aren't sure you need it. If you do
|
|
|
|
need it then you will be told to install/upgrade flex when you try to
|
|
|
|
compile.
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
To install it, type the following:
|
|
|
|
cd
|
|
|
|
gunzip -c flex-2.5.4.tar.gz | tar xvf -
|
|
|
|
cd flex-2.5.4
|
|
|
|
configure --prefix=/usr
|
|
|
|
make
|
|
|
|
make check
|
|
|
|
# You must be root when typing the next line.
|
|
|
|
make install
|
|
|
|
cd
|
|
|
|
rm -rf flex-2.5.4
|
|
|
|
|
|
|
|
This will update files /usr/man/man1/flex.1, /usr/bin/flex,
|
|
|
|
/usr/lib/libfl.a, /usr/include/FlexLexer.h and will add link
|
|
|
|
/usr/bin/flex++ which points to flex.
|
|
|
|
|
1997-06-07 11:42:17 +08:00
|
|
|
6) If you are upgrading an existing system then back up your database.
|
1997-10-15 10:34:51 +08:00
|
|
|
For alpha- and beta-level releases, the database format is liable
|
|
|
|
to change often every few weeks with no notice besides a quick comment
|
|
|
|
in the HACKERS mailing list. Full releases always require a dump/reload
|
|
|
|
from previous releases. It is therefore a bad idea to skip this
|
1998-02-02 05:20:26 +08:00
|
|
|
step. Type (with the gunzip line and the following line typed as one
|
|
|
|
line):
|
1997-05-07 11:15:36 +08:00
|
|
|
cd
|
1998-05-13 05:44:08 +08:00
|
|
|
gunzip -c postgresql-6.3.2.tar.gz |
|
1997-05-26 08:43:41 +08:00
|
|
|
tar xvf - src/bin/pg_dump/pg_dumpall
|
|
|
|
chmod a+x src/bin/pg_dump/pg_dumpall
|
|
|
|
src/bin/pg_dump/pg_dumpall > db.out
|
|
|
|
rm -rf src
|
|
|
|
If you wish to preserve object id's (oids), then use the -o
|
|
|
|
option when running pg_dumpall. However, unless you have a
|
|
|
|
special reason for doing this, don't do it.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-06-02 11:02:43 +08:00
|
|
|
If the pg_dumpall command seems to take a long time and you think
|
|
|
|
it might have died, then, from another terminal, use "ls -l db.out"
|
|
|
|
several times to see if the size of the file is growing.
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
Please note that if you are upgrading from a version prior to
|
|
|
|
Postgres95 v1.09 then you must back up your database, install
|
|
|
|
Postgres95 v1.09, restore your database, then back it up again.
|
1998-04-08 05:01:28 +08:00
|
|
|
|
|
|
|
You should also read the appropriate files pgsql/migration/*.
|
1997-05-16 06:16:45 +08:00
|
|
|
|
|
|
|
You must make sure that your database is not updated in the middle of
|
|
|
|
your backup. If necessary, bring down postmaster, edit the permissions
|
|
|
|
in file /usr/local/pgsql/data/pg_hba.conf to allow only you on, then
|
|
|
|
bring postmaster back up.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
7) If you are upgrading an existing system then kill the postmaster. Type
|
|
|
|
ps -ax | grep postmaster
|
|
|
|
This should list the process numbers for a number of processes. Type
|
|
|
|
the following line, with "???" replaced by the process id for process
|
|
|
|
"postmaster". (Do not use the id for process "grep postmaster".) Type
|
|
|
|
kill ???
|
|
|
|
with "???" modified as indicated.
|
|
|
|
|
|
|
|
8) If you are upgrading an existing system then move the old directories
|
|
|
|
out of the way. If you are short of disk space then you may have to
|
|
|
|
back up and delete the directories instead. If you do this, save the
|
|
|
|
old database in the /usr/local/pgsql/data directory tree. At a
|
|
|
|
minimum, save file /usr/local/pgsql/data/pg_hba.conf.
|
|
|
|
|
|
|
|
Type the following:
|
|
|
|
su
|
|
|
|
cd /usr/src
|
|
|
|
mv pgsql pgsql_6_0
|
|
|
|
cd /usr/local
|
|
|
|
mv pgsql pgsql_6_0
|
|
|
|
exit
|
|
|
|
|
|
|
|
If you are not using /usr/local/pgsql/data as your data directory
|
|
|
|
(check to see if environment variable PGDATA is set to something
|
|
|
|
else) then you will also want to move this directory in the same
|
|
|
|
manner.
|
|
|
|
|
1997-05-17 22:26:30 +08:00
|
|
|
9) Make new source and install directories. The actual paths can be
|
|
|
|
different for your installation; be consistant with your configuration
|
|
|
|
in step (11).
|
|
|
|
Type
|
1997-05-07 11:15:36 +08:00
|
|
|
su
|
|
|
|
cd /usr/src
|
|
|
|
mkdir pgsql
|
1997-05-17 11:00:24 +08:00
|
|
|
chown postgres:postgres pgsql
|
1997-05-07 11:15:36 +08:00
|
|
|
cd /usr/local
|
|
|
|
mkdir pgsql
|
1997-05-17 11:00:24 +08:00
|
|
|
chown postgres:postgres pgsql
|
1997-05-07 11:15:36 +08:00
|
|
|
exit
|
|
|
|
|
|
|
|
10) Unzip and untar the new source file. Type
|
|
|
|
cd /usr/src/pgsql
|
1998-05-13 05:44:08 +08:00
|
|
|
gunzip -c ~/postgresql-6.3.2.tar.gz | tar xvf -
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-17 22:26:30 +08:00
|
|
|
11) Configure the source code for your system. It is this step at which
|
|
|
|
you can specify your actual source path and installation paths for
|
|
|
|
the build process (see the --prefix option below). Type
|
1997-05-07 11:15:36 +08:00
|
|
|
cd /usr/src/pgsql/src
|
|
|
|
./configure
|
|
|
|
|
|
|
|
The configure program will list the template files available and
|
|
|
|
ask you to choose one. A lot of times, an appropriate template
|
|
|
|
file is chosen for you, and you can just press Enter to accept the
|
|
|
|
default. If the default is not appropriate, then type in the
|
|
|
|
appropriate template file and press Enter. (If you do this, then
|
|
|
|
send email to scrappy@hub.org stating the output of the program
|
|
|
|
'./config.guess' and what the template file should be.)
|
|
|
|
|
|
|
|
Once you have entered the template file, you will be asked a
|
|
|
|
number of questions about your particular configuration. These
|
|
|
|
can be skipped by adding parameters to the configure command above.
|
|
|
|
The following parameters can be tagged onto the end of the configure
|
|
|
|
command:
|
|
|
|
|
|
|
|
--prefix=BASEDIR Selects a different base directory for the
|
|
|
|
installation of the PostgreSQL configuration.
|
|
|
|
The default is /usr/local/pgsql.
|
|
|
|
|
1997-10-02 08:50:28 +08:00
|
|
|
--enable-hba Enables Host Based Authentication (DEFAULT)
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
--enable-locale Enables USE_LOCALE
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
--enable-cassert Enables ASSERT_CHECKING
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
--with-template=TEMPLATE
|
|
|
|
Use template file TEMPLATE - the template
|
|
|
|
files are assumed to be in the directory
|
|
|
|
src/template, so look there for proper values.
|
|
|
|
(If the configure script cannot find the
|
|
|
|
specified template file, it will ask you for
|
|
|
|
one).
|
|
|
|
|
|
|
|
--with-pgport=PORT Sets the port that the postmaster process
|
|
|
|
listens for incoming connections on. The
|
|
|
|
default for this is port 5432.
|
|
|
|
|
1998-02-23 04:02:34 +08:00
|
|
|
--with-tcl Enables programs requiring Tcl/Tk and X11,
|
|
|
|
including pgtclsh and libpgtcl.
|
|
|
|
|
1998-06-02 00:44:08 +08:00
|
|
|
--with-perl Enables the perl interface.
|
1998-02-23 04:02:34 +08:00
|
|
|
|
1998-04-06 04:28:23 +08:00
|
|
|
--with-includes=DIRS
|
|
|
|
Include DIRS in list of directories searched
|
|
|
|
for header files. (Typical use will need
|
|
|
|
--with-includes=/usr/local/include)
|
|
|
|
|
1998-04-17 09:30:21 +08:00
|
|
|
--with-libs=DIRS
|
1998-04-06 04:28:23 +08:00
|
|
|
--with-libraries=DIRS
|
|
|
|
Include DIRS in list of directories searched
|
|
|
|
for archive libraries. (Typical use will need
|
|
|
|
--with-libraries=/usr/local/lib)
|
|
|
|
|
1998-06-16 11:28:58 +08:00
|
|
|
--with-CC=compiler
|
|
|
|
Use a specific C compiler that the configure
|
|
|
|
script cannot find.
|
|
|
|
|
|
|
|
--with-CXX=compiler
|
|
|
|
--without-CXX
|
|
|
|
Use a specific C++ compiler that the configure
|
|
|
|
script cannot find, or exclude C++ compilation
|
|
|
|
altogether.
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
As an example, here is the configure script I use on a Sparc
|
|
|
|
Solaris 2.5 system with /opt/postgres being the install base.
|
|
|
|
|
|
|
|
% ./configure --prefix=/opt/postgres
|
1997-04-12 17:33:25 +08:00
|
|
|
--with-template=sparc_solaris-gcc --with-pgport=5432
|
1998-05-13 07:14:00 +08:00
|
|
|
--enable-hba
|
1997-04-12 17:33:25 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
Of course, in a real shell, you would type these three lines all
|
|
|
|
on the same line.
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
12) Compile the program. Type
|
1997-05-07 11:15:36 +08:00
|
|
|
cd /usr/src/pgsql/src
|
1997-05-17 22:26:30 +08:00
|
|
|
gmake all >& make.log &
|
1997-05-07 11:15:36 +08:00
|
|
|
tail -f make.log
|
1997-05-17 22:26:30 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
The last line displayed will hopefully be "All of PostgreSQL is
|
|
|
|
successfully made. Ready to install." At this point, or earlier
|
|
|
|
if you wish, type control-C to get out of tail. (If you have
|
|
|
|
problems later on you may wish to examine file make.log for
|
|
|
|
warning and error messages.)
|
|
|
|
|
|
|
|
If your computer does not have gmake (GNU make) then try running
|
|
|
|
make instead throughout the rest of these notes.
|
|
|
|
|
|
|
|
Please note that you will probably find a number of warning
|
|
|
|
messages in make.log. Unless you have problems later on, these
|
|
|
|
messages may be safely ignored.
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
If the compiler fails with an error stating that the flex command
|
|
|
|
cannot be found then install flex as described earlier. Next,
|
|
|
|
change directory back to this directory, type "make clean", then
|
|
|
|
recompile again.
|
|
|
|
|
|
|
|
13) Install the program. Type
|
1997-05-07 11:15:36 +08:00
|
|
|
cd /usr/src/pgsql/src
|
1997-05-17 22:26:30 +08:00
|
|
|
gmake install >& make.install.log &
|
1997-05-07 11:15:36 +08:00
|
|
|
tail -f make.install.log
|
1997-05-17 22:26:30 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
The last line displayed will be "gmake[1]: Leaving directory
|
|
|
|
`/usr/src/pgsql/src/man'". At this point, or earlier if you wish,
|
|
|
|
type control-C to get out of tail.
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
14) If necessary, tell UNIX how to find your shared libraries. If you
|
1997-05-07 11:15:36 +08:00
|
|
|
are using Linux-ELF do ONE of the following, preferably the first:
|
|
|
|
|
|
|
|
a) As root, edit file /etc/ld.so.conf. Add line
|
|
|
|
/usr/local/pgsql/lib
|
|
|
|
to the file. Then run command /sbin/ldconfig.
|
|
|
|
|
|
|
|
b) In a bash shell, type
|
|
|
|
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
|
|
|
|
|
|
|
|
c) In a csh shell, type
|
|
|
|
setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
|
|
|
|
|
|
|
|
Please note that the above commands may vary wildly for different
|
|
|
|
operating systems. Check the platform specific notes, such as
|
|
|
|
those for Ultrix4.x or and for non-ELF Linux.
|
|
|
|
|
|
|
|
If, when you create the database, you get the message "pg_id: can't
|
|
|
|
load library 'libpq.so'" then the above step was necessary. Simply
|
|
|
|
do this step, then try to create the database again.
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
15) If it has not already been done, then prepare account postgres
|
1997-05-07 11:15:36 +08:00
|
|
|
for using PostgreSQL. Any account that will use PostgreSQL must
|
|
|
|
be similarily prepared. (The following instructions are for a
|
|
|
|
bash shell. Adapt accordingly for other shells.)
|
|
|
|
|
|
|
|
Add the following lines to your login shell, ~/.bash_profile:
|
|
|
|
PATH=$PATH:/usr/local/pgsql/bin
|
1997-06-26 05:16:24 +08:00
|
|
|
MANPATH=$MANPATH:/usr/local/pgsql/man
|
1997-05-07 11:15:36 +08:00
|
|
|
PGLIB=/usr/local/pgsql/lib
|
|
|
|
PGDATA=/usr/local/pgsql/data
|
|
|
|
export PATH MANPATH PGLIB PGDATA
|
|
|
|
|
|
|
|
Make sure that you have defined these variables before continuing
|
|
|
|
with the remaining steps. The easiest way to do this is to type:
|
|
|
|
source ~/.bash_profile
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
16) Create the database. DO NOT DO THE FOLLOWING AS ROOT! This would
|
1997-05-07 11:15:36 +08:00
|
|
|
be a major security hole. Type
|
|
|
|
initdb
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
17) Set up permissions to access the database system. Do this by editing
|
1997-05-07 11:15:36 +08:00
|
|
|
file /usr/local/pgsql/data/pg_hba.conf. The instructions are
|
|
|
|
included in the file. (If your database is not located in the
|
|
|
|
default location, i.e. if PGDATA is set to point elsewhere, then the
|
|
|
|
location of this file will change accordingly.) This file should be
|
|
|
|
made read only again once you are finsihed.
|
|
|
|
|
1998-02-02 05:20:26 +08:00
|
|
|
If you are upgrading, you can NOT copy file pg_hba.conf from your
|
|
|
|
old database on top of the one in your new database. You will
|
|
|
|
have to re-do your changes.
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-17 11:00:24 +08:00
|
|
|
18) If you wish to skip the regression tests then skip to step 21.
|
|
|
|
|
1997-06-03 23:25:45 +08:00
|
|
|
The file /usr/src/pgsql/src/test/regress/README has detailed
|
|
|
|
instructions for running and interpreting the regression tests.
|
|
|
|
A short version follows here:
|
|
|
|
|
1997-05-17 11:00:24 +08:00
|
|
|
Start the postmaster in preparation for the regression tests. First,
|
1997-05-17 22:26:30 +08:00
|
|
|
set the timezone for Berkeley, California. On some systems you may do
|
1997-05-16 06:16:45 +08:00
|
|
|
this by setting environment variable TZ. I.e., using bash, type
|
1997-06-03 23:25:45 +08:00
|
|
|
export TZ=PST8PDT
|
1997-05-17 22:26:30 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
Now start the postmaster daemon running in the background by typing
|
|
|
|
cd
|
|
|
|
nohup postmaster > regress.log 2>&1 &
|
1997-05-17 22:26:30 +08:00
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
Run postmaster from your Postgres super user account (typically
|
1997-05-16 06:16:45 +08:00
|
|
|
account postgres). DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
19) Run the regression tests. Type
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
cd /usr/src/pgsql/src/test/regress
|
|
|
|
gmake clean
|
|
|
|
gmake all runtest
|
|
|
|
|
|
|
|
You do not need to type "gmake clean" if this is the first time you
|
|
|
|
are running the tests.
|
|
|
|
|
|
|
|
You should get on the screen (and also written to file ./regress.out)
|
|
|
|
a series of statements stating which tests passed and which tests
|
1997-05-17 22:26:30 +08:00
|
|
|
failed. Please note that it can be normal for some of the tests to
|
|
|
|
"fail". For the failed tests, use diff to compare the files in
|
|
|
|
directories ./results and ./expected. If float8 failed, type
|
|
|
|
something like:
|
1997-05-17 11:00:24 +08:00
|
|
|
cd /usr/src/pgsql/src/test/regress
|
|
|
|
diff -w expected/float8.out results
|
1997-05-17 22:26:30 +08:00
|
|
|
|
|
|
|
"Failed" tests may have failed due to slightly different error messages,
|
|
|
|
output formatting, failure to set the timezone correctly for your
|
|
|
|
platform, etc. "Failures" of this type do not indicate a problem with
|
|
|
|
PostgreSQL.
|
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
For a i686/Linux-ELF platform, no tests failed since this is the
|
1998-04-08 05:01:28 +08:00
|
|
|
v6.3.2 regression testing reference platform.
|
1997-05-17 22:26:30 +08:00
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
For the SPARC/Linux-ELF platform, using the 970525 beta version of
|
|
|
|
PostgreSQL v6.2 the following tests "failed":
|
1997-05-26 08:43:41 +08:00
|
|
|
float8 and geometry "failed" due to minor precision differences in
|
1997-06-03 23:25:45 +08:00
|
|
|
floating point numbers. select_views produces massively different output,
|
|
|
|
but the differences are due to minor floating point differences.
|
1997-05-17 22:26:30 +08:00
|
|
|
|
|
|
|
Conclusion? If you do see failures, try to understand the nature of
|
|
|
|
the differences and then decide if those differences will affect your
|
|
|
|
intended use of PostgreSQL. However, keep in mind that this is likely
|
|
|
|
to be the most solid release of PostgreSQL to date, incorporating many
|
1998-02-02 05:20:26 +08:00
|
|
|
bug fixes from v6.2.1, and that previous versions of PostgreSQL have been
|
1997-05-17 22:26:30 +08:00
|
|
|
in use successfully for some time now.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
|
|
|
After running the tests, type
|
1997-06-02 11:02:43 +08:00
|
|
|
destroydb regression
|
1997-05-07 11:15:36 +08:00
|
|
|
cd /usr/src/pgsql/src/test/regress
|
|
|
|
gmake clean
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
20) Stop the postmaster as described in step 7. Then restore the
|
|
|
|
timezone to it's normal setting. If you changed the timezone by
|
|
|
|
modifying environment variable TZ then one way to do this is to
|
|
|
|
log out of, then back into, account postgres.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
21) Start the postmaster daemon running. Type
|
1997-05-07 11:15:36 +08:00
|
|
|
cd
|
|
|
|
nohup postmaster > server.log 2>&1 &
|
1997-10-15 10:34:51 +08:00
|
|
|
Run postmaster from your Postgres super user account (typically
|
1997-05-16 06:16:45 +08:00
|
|
|
account postgres). DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
22) If you haven't already done so, this would be a good time to modify
|
1997-05-07 11:15:36 +08:00
|
|
|
your computer so that it will automatically start postmaster whenever
|
|
|
|
you boot your computer.
|
|
|
|
|
|
|
|
Here are some suggestions on how to do this, contributed by various
|
|
|
|
users.
|
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
Whatever you do, postmaster must be run by user postgres AND NOT BY
|
1997-05-07 11:15:36 +08:00
|
|
|
ROOT. This is why all of the examples below start by switching user
|
|
|
|
(su) to postgres. These commands also take into account the fact
|
|
|
|
that environment variables like PATH and PGDATA may not be set properly.
|
|
|
|
|
|
|
|
The examples are as follows. Use them with extreme caution.
|
|
|
|
|
|
|
|
a) Edit file rc.local on NetBSD or file rc2.d on SPARC Solaris
|
|
|
|
2.5.1 to contain the following single line:
|
|
|
|
su postgres -c "/usr/local/pgsql/bin/postmaster -S -D
|
|
|
|
/usr/local/pgsql/data"
|
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
b) In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to
|
1997-05-17 11:00:24 +08:00
|
|
|
contain the following lines and make it chmod 755 and chown
|
|
|
|
root:bin.
|
1997-05-07 11:15:36 +08:00
|
|
|
#!/bin/sh
|
1997-05-17 11:00:24 +08:00
|
|
|
[ -x /usr/local/pgsql/bin/postmaster ] && {
|
1998-05-13 05:44:08 +08:00
|
|
|
su -l postgres -c 'exec /usr/local/pgsql/bin/postmaster
|
1997-05-17 11:00:24 +08:00
|
|
|
-D/usr/local/pgsql/data
|
|
|
|
-S -o -F > /usr/local/pgsql/errlog' &
|
|
|
|
echo -n ' pgsql'
|
|
|
|
}
|
|
|
|
You may put the line breaks as shown above. The shell is smart
|
|
|
|
enough to keep parsing beyond end-of-line if there is an
|
|
|
|
expression unfinished. The exec saves one layer of shell under
|
1997-10-15 10:34:51 +08:00
|
|
|
the postmaster process so the parent is init. Note: Unlike most
|
1997-05-17 11:00:24 +08:00
|
|
|
other examples, this one has been tested.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
c) In RedHat v4.0 Linux edit file /etc/inittab to contain the
|
|
|
|
following single line:
|
|
|
|
pg:2345:respawn:/bin/su - postgres -c
|
|
|
|
"/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data
|
1998-03-25 09:45:33 +08:00
|
|
|
>> /usr/local/pgsql/server.log 2>&1" >/dev/null
|
1997-10-15 10:34:51 +08:00
|
|
|
(The author of this example says this example will revive the
|
|
|
|
postmaster if it dies, but he doesn't know if there are other side
|
|
|
|
effects.)
|
|
|
|
|
|
|
|
d) The contrib/linux area of the PostgreSQL distribution has an example
|
|
|
|
init.d script compatible with and tested using recent RedHat packages.
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-06-07 11:42:17 +08:00
|
|
|
22a) If you haven't already done so, this would be a good time to modify
|
|
|
|
your computer to do regular maintainence. The following should be
|
|
|
|
done at regular intervals:
|
|
|
|
|
|
|
|
a) Run the SQL command vacuum. This will clean up your database.
|
|
|
|
b) Back up your system. (You should probably keep the last few
|
|
|
|
backups on hand.) Ideally, no one else should be using the
|
|
|
|
system at the time.
|
|
|
|
|
|
|
|
Ideally, the above tasks should be done by a shell script that is
|
|
|
|
run nightly or weekly by cron. Look at the man page for crontab
|
|
|
|
for a starting point on how to do this. (If you do it, please
|
|
|
|
e-mail us a copy of your shell script. We would like to set up
|
|
|
|
our own systems to do this too.)
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1998-03-24 00:14:50 +08:00
|
|
|
23) If you are upgrading an existing system then reload your old database.
|
1997-05-07 11:15:36 +08:00
|
|
|
Type
|
|
|
|
cd
|
|
|
|
psql -e template1 < db.out
|
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
If your pre-v6.2 database uses either path or polygon geometric data types,
|
1997-06-03 23:25:45 +08:00
|
|
|
then you will need to upgrade any columns containing those types. To
|
|
|
|
do so, type (from within psql)
|
|
|
|
update YourTable set PathCol = UpgradePath(PathCol);
|
|
|
|
update YourTable set PolyCol = UpgradePoly(PolyCol);
|
|
|
|
...
|
|
|
|
vacuum;
|
|
|
|
|
|
|
|
UpgradePath() checks to see that a path value is consistant with the
|
|
|
|
old syntax, and will not update a column which fails that examination.
|
|
|
|
UpgradePoly() cannot verify that a polygon is in fact from an old
|
|
|
|
syntax, but RevertPoly() is provided to reverse the effects of a
|
|
|
|
mis-applied upgrade.
|
|
|
|
|
1997-10-15 10:34:51 +08:00
|
|
|
24) If you are a new user, you may wish to play with Postgres as described
|
1997-05-07 11:15:36 +08:00
|
|
|
below.
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
25) Clean up after yourself. Type
|
1997-05-07 11:15:36 +08:00
|
|
|
rm -rf /usr/src/pgsql_6_0
|
|
|
|
rm -rf /usr/local/pgsql_6_0
|
|
|
|
# Also delete old database directory tree if it is not in
|
|
|
|
# /usr/local/pgsql_6_0/data
|
1998-05-13 05:44:08 +08:00
|
|
|
rm ~/postgresql-6.3.2.tar.gz
|
1997-05-07 11:15:36 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
26) You will probably want to print out the documentation. Here is how
|
1997-05-07 11:15:36 +08:00
|
|
|
you might do it if you have Ghostscript on your system and are
|
|
|
|
writing to a laserjet printer.
|
|
|
|
alias gshp='gs -sDEVICE=laserjet -r300 -dNOPAUSE'
|
|
|
|
export GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts
|
|
|
|
# Print out the man pages.
|
|
|
|
man -a -t /usr/local/pgsql/man/*/* > manpage.ps
|
|
|
|
gshp -sOUTPUTFILE=manpage.hp manpage.ps
|
|
|
|
rm manpage.ps
|
|
|
|
lpr -l -s -r manpage.hp
|
|
|
|
# Print out the Postgres95 User Manual, version 1.0,
|
|
|
|
# Sept. 5, 1996.
|
|
|
|
cd /usr/src/pgsql/doc
|
|
|
|
gshp -sOUTPUTFILE=userguide.hp userguide.ps
|
|
|
|
lpr -l -s -r userguide.hp
|
|
|
|
|
|
|
|
If you are a developer, you will probably want to also print out
|
|
|
|
the Postgres Implemention Guide, version 1.0, October 1, 1995.
|
|
|
|
This is a WWW document located at
|
|
|
|
http://www.postgresql.org/docs/impguide.
|
|
|
|
|
1997-06-02 11:02:43 +08:00
|
|
|
27) The Postgres team wants to keep PostgreSQL working on all of the
|
|
|
|
supported platforms. We therefore ask you to let us know if you did
|
|
|
|
or did not get PostgreSQL to work on you system. Please send a
|
|
|
|
mail message to pgsql-ports@postgresql.org telling us the following:
|
1998-05-13 05:44:08 +08:00
|
|
|
- The version of PostgreSQL (6.3.2, 6.2.1, beta 970703, etc.).
|
1997-06-02 11:02:43 +08:00
|
|
|
- Your operating system (i.e. RedHat v4.0 Linux v2.0.26).
|
|
|
|
- Your hardware (SPARC, i486, etc.).
|
|
|
|
- Did you compile, install and run the regression tests cleanly?
|
|
|
|
If not, what source code did you change (i.e. patches you
|
|
|
|
applied, changes you made, etc.), what tests failed, etc.
|
|
|
|
It is normal to get many warning when you compile. You do
|
|
|
|
not need to report these.
|
|
|
|
|
|
|
|
28) Now create, access and manipulate databases as desired. Write client
|
1997-05-07 11:15:36 +08:00
|
|
|
programs to access the database server. In other words, ENJOY!
|
1996-09-23 16:27:04 +08:00
|
|
|
|
|
|
|
|
1996-10-30 14:01:55 +08:00
|
|
|
PLAYING WITH POSTGRESQL
|
1996-09-23 16:27:04 +08:00
|
|
|
-----------------------
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-10-30 14:01:55 +08:00
|
|
|
After PostgreSQL is installed, a database system is created, a postmaster
|
1996-09-23 16:27:04 +08:00
|
|
|
daemon is running, and the regression tests have passed, you'll want to
|
1996-10-30 14:01:55 +08:00
|
|
|
see PostgreSQL do something. That's easy. Invoke the interactive interface
|
|
|
|
to PostgreSQL, psql, and start typing SQL:
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-01-03 14:08:21 +08:00
|
|
|
$ psql template1
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-09-23 16:27:04 +08:00
|
|
|
(psql has to open a particular database, but at this point the only one
|
|
|
|
that exists is the template1 database, which always exists. We will connect
|
|
|
|
to it only long enough to create another one and switch to it).
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-09-23 16:27:04 +08:00
|
|
|
The response from psql is:
|
1996-08-19 06:14:33 +08:00
|
|
|
|
|
|
|
type \? for help on slash commands
|
|
|
|
type \q to quit
|
|
|
|
type \g or terminate with semicolon to execute query
|
1996-09-23 16:27:04 +08:00
|
|
|
You are currently connected to the database: template1
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-09-23 16:27:04 +08:00
|
|
|
template1=>
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1996-09-23 16:27:04 +08:00
|
|
|
Create the database foo:
|
|
|
|
|
|
|
|
template1=> CREATE DATABASE FOO;
|
|
|
|
INSERT 773248
|
|
|
|
|
1997-05-17 22:26:30 +08:00
|
|
|
(Get in the habit of including those SQL semicolons. Psql won't execute
|
|
|
|
anything until it sees the semicolon or a "\g" and the semicolon is required
|
|
|
|
to delimit multiple statements.)
|
1996-09-23 16:27:04 +08:00
|
|
|
|
|
|
|
template1=> \c foo
|
|
|
|
closing connection to database: template1
|
|
|
|
connecting to new database: foo
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
(\ commands aren't SQL, so no semicolon. Use \? to see all the \ commands.)
|
1996-09-23 16:27:04 +08:00
|
|
|
|
1997-05-17 22:26:30 +08:00
|
|
|
foo=> CREATE TABLE bar (column1 int4, column2 char16);
|
1996-09-23 16:27:04 +08:00
|
|
|
CREATE
|
|
|
|
|
1997-05-17 22:26:30 +08:00
|
|
|
foo=> \d bar
|
1996-09-23 16:27:04 +08:00
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
You get the idea.
|
|
|
|
|
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
QUESTIONS? BUGS? FEEDBACK?
|
|
|
|
----------------------------
|
1996-09-23 16:27:04 +08:00
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
First, read the files in directory /usr/src/pgsql/doc. The FAQ in
|
|
|
|
this directory may be particularly useful.
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
If PostgreSQL failed to compile on your computer then fill out the form
|
1997-05-16 06:16:45 +08:00
|
|
|
in file /usr/src/pgsql/doc/bug.template and mail it to the location
|
|
|
|
indicated at the top of the form.
|
1996-08-19 06:14:33 +08:00
|
|
|
|
1997-05-07 11:15:36 +08:00
|
|
|
Mail questions to pgsql-questions@postgresql.org. For more information
|
|
|
|
on the various mailing lists, see http://www.postgresql.org under mailing
|
|
|
|
lists.
|
1996-08-19 06:14:33 +08:00
|
|
|
|
|
|
|
|
1997-05-16 06:16:45 +08:00
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
Porting Notes (these notes may be out of date):
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Ultrix4.x:
|
|
|
|
You need to install the libdl-1.1 package since Ultrix 4.x doesn't
|
|
|
|
have a dynamic loader. It's available in
|
|
|
|
s2k-ftp.CS.Berkeley.EDU:pub/personal/andrew/libdl-1.1.tar.Z
|
|
|
|
|
|
|
|
Linux:
|
1997-10-15 10:34:51 +08:00
|
|
|
A linux-2.0.30/libc-5.3.12/RedHat-4.2 running on a dual processor
|
|
|
|
i686 is the regression testing reference machine.
|
1997-05-17 22:26:30 +08:00
|
|
|
The linux-elf port installs cleanly. If you are using an
|
|
|
|
i486 processor or higher, you can edit template/linux-elf
|
|
|
|
to include "-m486" as a compiler option. configure does not
|
|
|
|
detect that sigsetjmp() is available, but you can edit
|
|
|
|
include/config.h after running configure and before running
|
|
|
|
make to include "#define HAVE_SIGSETJMP 1". Note that I have
|
|
|
|
not seen any difference in PostgreSQL behavior either way.
|
|
|
|
(Thomas G. Lockhart
|
1997-10-15 10:34:51 +08:00
|
|
|
<lockhart@alumni.caltech.edu> 97/10/14)
|
1997-05-17 22:26:30 +08:00
|
|
|
|
|
|
|
For non-ELF Linux, the dld library MUST be obtained and installed on
|
1997-10-15 10:34:51 +08:00
|
|
|
the system. It enables dynamic link loading capability to the Postgres
|
1997-05-17 22:26:30 +08:00
|
|
|
port. The dld library can be obtained from the sunsite linux
|
|
|
|
distributions. The current name is dld-3.2.5.
|
1997-05-16 06:16:45 +08:00
|
|
|
(Jalon Q. Zimmerman
|
|
|
|
<sneaker@powergrid.electriciti.com> 5/11/95)
|
|
|
|
|
|
|
|
BSD/OS:
|
1997-05-26 08:43:41 +08:00
|
|
|
For BSD/OS 2.0 and 2.01, you will need to get the GNU dld library.
|
1997-05-16 06:16:45 +08:00
|
|
|
|
|
|
|
NeXT:
|
|
|
|
The NeXT port was supplied by Tom R. Hageman <tom@basil.icce.rug.nl>.
|
|
|
|
It requires a SysV IPC emulation library and header files for
|
|
|
|
shared libary and semaphore stuff. Tom just happens to sell such
|
|
|
|
a product so contact him for information. He has also indicated that
|
|
|
|
binary releases of PostgreSQL for NEXTSTEP will be made available to
|
|
|
|
the general public. Contact Info@RnA.nl for information.
|
|
|
|
|