mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
Try to go through and get the markup right.
Make more changes to freshen up to v6.4 conventions. Drop mention of Postgres95 docs.
This commit is contained in:
@ -34,12 +34,12 @@ User postgres is the <ProductName>Postgres</ProductName> superuser.
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
<Para>
|
||||
The source path is /usr/src/pgsql (other paths are possible).
|
||||
The source path is <filename>/usr/src/pgsql</filename> (other paths are possible).
|
||||
</Para>
|
||||
</ListItem>
|
||||
<ListItem>
|
||||
<Para>
|
||||
The runtime path is /usr/local/pgsql (other paths are possible).
|
||||
The runtime path is <filename>/usr/local/pgsql</filename> (other paths are possible).
|
||||
</Para>
|
||||
</ListItem>
|
||||
</ItemizedList>
|
||||
@ -47,8 +47,9 @@ The runtime path is /usr/local/pgsql (other paths are possible).
|
||||
<Para>
|
||||
Commands were tested on RedHat Linux version 4.2 using the tcsh 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. <Emphasis>Use common sense</Emphasis> before typing in these commands.
|
||||
like <command>ps</command> and <command>tar</command> may vary wildly
|
||||
between platforms on what options you should use.
|
||||
<Emphasis>Use common sense</Emphasis> before typing in these commands.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
@ -56,15 +57,21 @@ Our Makefiles require GNU <Application>make</Application> (called
|
||||
<Quote>gmake</Quote> in this document). They will <Emphasis>not</Emphasis>
|
||||
work with non-GNU <Application>make</Application> programs. If you
|
||||
have GNU <Application>make</Application> installed under the name
|
||||
<Quote>make</Quote> instead of <Quote>gmake</Quote>, that's OK, but
|
||||
you need to have it.
|
||||
<Quote>make</Quote> instead of <Quote>gmake</Quote>, then you will use the
|
||||
command <command>make</command> instead. That's OK, but
|
||||
you need to have the GNU form of <Application>make</Application> to succeed with
|
||||
an installation.
|
||||
</Para>
|
||||
|
||||
<Sect1>
|
||||
<Title>Requirements to Run <ProductName>Postgres</ProductName></Title>
|
||||
|
||||
<Para>
|
||||
Information on supported platforms is in another chapter. In general, most Unix-compatible
|
||||
Up to date information on supported platforms is at
|
||||
<ulink url="http://www.postgresql.org/docs/admin/install.htm">
|
||||
http://www.postgresql.org/docs/admin/install.htm</ulink>.
|
||||
|
||||
In general, most Unix-compatible
|
||||
platforms with modern libraries should be able to run <ProductName>Postgres</ProductName>.
|
||||
|
||||
<Para>
|
||||
@ -114,20 +121,22 @@ Read any last minute information and platform specific porting
|
||||
|
||||
<Step Performance="optional">
|
||||
<Para>
|
||||
Create account postgres if it does not already exist.
|
||||
Create the <ProductName>Postgres</ProductName> superuser account
|
||||
(<literal>postgres</literal> is commonly used) if it does not already exist.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Log into account postgres.
|
||||
Log in to the <ProductName>Postgres</ProductName> superuser account.
|
||||
</Para>
|
||||
|
||||
<SubSteps>
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Check that you have sufficient disk space. You will need about
|
||||
17 Mbytes for /usr/src/pgsql, about 2 Mbytes for /usr/local/pgsql
|
||||
17 Mbytes for <filename>/usr/src/pgsql</filename>,
|
||||
about 2 Mbytes for <filename>/usr/local/pgsql</filename>
|
||||
(excluding your database) and 1 Mbyte for an empty database.
|
||||
The database will temporarily grow to about 20 Mbytes during the
|
||||
regression tests. You will also need about 3 Mbytes for the
|
||||
@ -136,69 +145,91 @@ Check that you have sufficient disk space. You will need about
|
||||
|
||||
<Para>
|
||||
We therefore recommend that during installation and testing you
|
||||
have well over 20 Mbytes free under /usr/local and another 25 Mbytes
|
||||
have well over 20 Mbytes free under <filename>/usr/local</filename> and another 25 Mbytes
|
||||
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
|
||||
will need 2 Mbytes for <filename>/usr/local/pgsql</filename>, 1 Mbyte for the empty
|
||||
database, plus about five times the space you would require to
|
||||
store your database data in a flat file.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
To check for disk space, use <Command>df -k</Command>.
|
||||
To check for disk space, use
|
||||
<programlisting>
|
||||
$ df -k
|
||||
</programlisting>
|
||||
</Para>
|
||||
</Step>
|
||||
</SubSteps>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz from the
|
||||
Internet. Store it in your home directory.
|
||||
Ftp file
|
||||
<ulink url="ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz"><filename>ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz</filename></ulink>
|
||||
from the Internet. Store it in your home directory.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Some platforms use flex. If your system uses flex then make sure
|
||||
you have a good version. To check, type <Command>flex --version</Command>.
|
||||
Some platforms use <application>flex</application>.
|
||||
If your system uses <application>flex</application> then make sure
|
||||
you have a good version. To check, type
|
||||
<programlisting>
|
||||
$ flex --version
|
||||
</programlisting>
|
||||
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
If the flex command is not found then you probably do not need it.
|
||||
If the <application>flex</application> command is not found then you probably do not need it.
|
||||
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.
|
||||
is 2.5.3 or before 2.5.2 then you will have to upgrade <application>flex</application>. You may
|
||||
get it at
|
||||
<ulink url="ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz</ulink>.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
If you need flex and don't have it or have the wrong version, then
|
||||
If you need <application>flex</application> 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.
|
||||
need it then you will be told to install/upgrade <application>flex</application> when you try to
|
||||
compile <productname>Postgres</productname>.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
To install it, type the following:
|
||||
You may want to do the entire <application>flex</application> installation from
|
||||
the root account, though that is not absolutely necessary.
|
||||
Assuming that you want the installation to place files in the usual default
|
||||
areas, type the following:
|
||||
<ProgramListing>
|
||||
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
|
||||
$ su -
|
||||
$ cd /usr/local/src
|
||||
ftp prep.ai.mit.edu
|
||||
ftp> cd /pub/gnu/
|
||||
ftp> binary
|
||||
ftp> get flex-2.5.4.tar.gz
|
||||
ftp> quit
|
||||
$ gunzip -c flex-2.5.4.tar.gz | tar xvf -
|
||||
$ cd flex-2.5.4
|
||||
$ configure --prefix=/usr
|
||||
$ gmake
|
||||
$ gmake check
|
||||
# You must be root when typing the next line:
|
||||
$ gmake install
|
||||
$ cd /usr/local/src
|
||||
$ rm -rf flex-2.5.4
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
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.
|
||||
This will update files <filename>/usr/man/man1/flex.1</filename>,
|
||||
<filename>/usr/bin/flex</filename>,
|
||||
<filename>/usr/lib/libfl.a</filename>,
|
||||
<filename>/usr/include/FlexLexer.h</filename> and will add a link
|
||||
<filename>/usr/bin/flex++</filename> which points to flex.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
@ -206,32 +237,44 @@ Some platforms use flex. If your system uses flex then make sure
|
||||
<Para>
|
||||
If you are upgrading an existing system then back up your database.
|
||||
For alpha- and beta-level releases, the database format is liable
|
||||
to change often every few weeks with no notice besides a quick comment
|
||||
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
|
||||
step. Also, do not use the pg_dumpall script from v6.0 or everything
|
||||
step.
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
Do not use the <application>pg_dumpall</application>
|
||||
script from v6.0 or everything
|
||||
will be owned by the <ProductName>Postgres</ProductName> super user.
|
||||
Type (with the gunzip line
|
||||
and the following line typed as one line):
|
||||
</tip>
|
||||
|
||||
<para>
|
||||
To use the latest <application>pg_dumpall</application> script on your
|
||||
existing database before upgrading <productname>Postgres</productname>, type:
|
||||
<ProgramListing>
|
||||
cd
|
||||
gunzip -c postgresql-v6.4.tar.gz |
|
||||
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
|
||||
$ cd
|
||||
$ gunzip -c postgresql-v6.4.tar.gz \
|
||||
| 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
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
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.
|
||||
option when running <application>pg_dumpall</application>. However, unless you have a
|
||||
special reason for doing this (such as using OIDs as keys
|
||||
in tables), don't do it.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
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"
|
||||
If the <application>pg_dumpall</application> command seems to take a long time and you think
|
||||
it might have died, then, from another terminal, type
|
||||
<programlisting>
|
||||
$ ls -l db.out
|
||||
</programlisting>
|
||||
several times to see if the size of the file is growing.
|
||||
</Para>
|
||||
|
||||
@ -239,28 +282,47 @@ If you are upgrading an existing system then back up your database.
|
||||
Please note that if you are upgrading from a version prior to
|
||||
<ProductName>Postgres95</ProductName> v1.09 then you must back up your database, install
|
||||
<ProductName>Postgres95</ProductName> v1.09, restore your database, then back it up again.
|
||||
You should also read files /usr/src/pgsql/migration/*.
|
||||
You should also read the release notes which should cover any release-specific issues.
|
||||
</Para>
|
||||
|
||||
<caution>
|
||||
<Para>
|
||||
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.
|
||||
in file <filename>/usr/local/pgsql/data/pg_hba.conf</filename> to allow only you on, then
|
||||
bring <application>postmaste</application>r back up.
|
||||
</Para>
|
||||
</caution>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
If you are upgrading an existing system then kill the postmaster. Type
|
||||
<ProgramListing>
|
||||
ps -ax | grep postmaster
|
||||
$ ps -ax | grep postmaster
|
||||
</ProgramListing>
|
||||
|
||||
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.
|
||||
the following line, with <replaceable>pid</replaceable>
|
||||
replaced by the process id for process
|
||||
<literal>postmaster</literal>.
|
||||
(Do not use the id for process "grep postmaster".) Type
|
||||
<programlisting>
|
||||
$ kill <replaceable>pid</replaceable>
|
||||
</programlisting>
|
||||
to actually stop the process.
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
On systems which have <productname>Postgres</productname> started at boot time, there
|
||||
is probably a startup file which will accomplish the same thing. For example, on my
|
||||
Linux system I can type
|
||||
<programlisting>
|
||||
$ /etc/rc.d/init.d/postgres.init stop
|
||||
</programlisting>
|
||||
to halt <productname>Postgres</productname>.
|
||||
</tip>
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
@ -269,22 +331,25 @@ If you are upgrading an existing system then kill the postmaster. Type
|
||||
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.
|
||||
old database in the <filename>/usr/local/pgsql/data</filename> directory tree. At a
|
||||
minimum, save file <filename>/usr/local/pgsql/data/pg_hba.conf</filename>.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
Type the following:
|
||||
su
|
||||
cd /usr/src
|
||||
mv pgsql pgsql_6_0
|
||||
cd /usr/local
|
||||
mv pgsql pgsql_6_0
|
||||
exit
|
||||
<programlisting>
|
||||
$ su -
|
||||
$ cd /usr/src
|
||||
$ mv pgsql pgsql_6_0
|
||||
$ cd /usr/local
|
||||
$ mv pgsql pgsql_6_0
|
||||
$ exit
|
||||
</programlisting>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
If you are not using /usr/local/pgsql/data as your data directory
|
||||
If you are not using <filename>/usr/local/pgsql/data</filename>
|
||||
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.
|
||||
@ -294,17 +359,26 @@ If you are upgrading an existing system then move the old directories
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Make new source and install directories. The actual paths can be
|
||||
different for your installation; be consistant throughout this procedure.
|
||||
different for your installation but you must be consistant throughout this procedure.
|
||||
<note>
|
||||
<para>
|
||||
There are two places in this installation procedure where you will have an opportunity
|
||||
to specify installation locations for programs, libraries, documentation, and other files.
|
||||
Usually it is sufficient to specify these at the <command>make install</command> stage
|
||||
of installation.
|
||||
</note>
|
||||
|
||||
<para>
|
||||
Type
|
||||
<ProgramListing>
|
||||
su
|
||||
cd /usr/src
|
||||
mkdir pgsql
|
||||
chown postgres:postgres pgsql
|
||||
cd /usr/local
|
||||
mkdir pgsql
|
||||
chown postgres:postgres pgsql
|
||||
exit
|
||||
$ su
|
||||
$ cd /usr/src
|
||||
$ mkdir pgsql
|
||||
$ chown postgres:postgres pgsql
|
||||
$ cd /usr/local
|
||||
$ mkdir pgsql
|
||||
$ chown postgres:postgres pgsql
|
||||
$ exit
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
</Step>
|
||||
@ -313,8 +387,8 @@ If you are upgrading an existing system then move the old directories
|
||||
<Para>
|
||||
Unzip and untar the new source file. Type
|
||||
<ProgramListing>
|
||||
cd /usr/src/pgsql
|
||||
gunzip -c ~/postgresql-v6.4.tar.gz | tar xvf -
|
||||
$ cd /usr/src/pgsql
|
||||
$ gunzip -c ~/postgresql-v6.4.tar.gz | tar xvf -
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
</Step>
|
||||
@ -325,8 +399,8 @@ If you are upgrading an existing system then move the old directories
|
||||
you can specify your actual installation path for
|
||||
the build process (see the --prefix option below). Type
|
||||
<ProgramListing>
|
||||
cd /usr/src/pgsql/src
|
||||
./configure [ options as described below ]
|
||||
$ cd /usr/src/pgsql/src
|
||||
$ ./configure [ <replaceable>options as described below</replaceable> ]
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
@ -335,10 +409,19 @@ If you are upgrading an existing system then move the old directories
|
||||
"template" file from the files provided in the template subdirectory.
|
||||
If it cannot guess which one to use for your system, it will say so and
|
||||
exit. In that case you'll need to figure out which one to use and run
|
||||
configure again, this time giving the --with-template=TEMPLATE option to
|
||||
make the right file be chosen. (If you have to do this, please
|
||||
send email to scrappy@hub.org stating the output of the program
|
||||
'./config.guess' and what the template file should be.)
|
||||
configure again, this time giving the <option>--with-template=TEMPLATE</option> option to
|
||||
make the right file be chosen.
|
||||
|
||||
<note>
|
||||
<title>Please Report Problems</title>
|
||||
|
||||
<para>
|
||||
If your system is not automatically recognized by configure and you have to do this, please
|
||||
send email to
|
||||
<ulink url="mailto:scrappy@hub.org">scrappy@hub.org</ulink> showing both the output of the program
|
||||
<application>./config.guess</application> and also what the template file should be.)
|
||||
</note>
|
||||
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
@ -391,54 +474,72 @@ If you are upgrading an existing system then move the old directories
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
As an example, here is the configure script I use on a Sparc
|
||||
Solaris 2.5 system with /opt/postgres being the install base.
|
||||
As an example, here is the configure script used on a Sparc
|
||||
Solaris 2.5 system with <filename>/opt/postgres</filename> being the install base.
|
||||
|
||||
<ProgramListing>
|
||||
./configure --prefix=/opt/postgres \
|
||||
$ ./configure --prefix=/opt/postgres \
|
||||
--with-template=sparc_solaris-gcc --with-pgport=5432 \
|
||||
--enable-hba --disable-locale
|
||||
</ProgramListing>
|
||||
|
||||
Of course, in a real shell, you would type these three lines all
|
||||
Of course, you may type these three lines all
|
||||
on the same line.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Compile the program. Type
|
||||
Install the <acronym>HTML</acronym> documentation. Type
|
||||
|
||||
<ProgramListing>
|
||||
cd /usr/src/pgsql/src
|
||||
gmake all >& make.log &
|
||||
tail -f make.log
|
||||
$ cd /usr/src/pgsql/doc
|
||||
$ gmake install
|
||||
</ProgramListing>
|
||||
|
||||
<para>
|
||||
The documentation is also available in Postscript format. Look for files
|
||||
ending with <filename>.ps.gz</filename> in the same directory.
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Compile the program. Type
|
||||
|
||||
<ProgramListing>
|
||||
$ cd /usr/src/pgsql/src
|
||||
$ gmake all >& make.log &
|
||||
$ tail -f make.log
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
The last line displayed will hopefully be "All of PostgreSQL is
|
||||
successfully made. Ready to install." At this point, or earlier
|
||||
The last line displayed will hopefully be
|
||||
<programlisting>
|
||||
All of PostgreSQL is successfully made. Ready to install.
|
||||
</programlisting>
|
||||
|
||||
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.)
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
If your computer does not have gmake (GNU make) then try running
|
||||
make instead throughout the rest of these notes.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
Please note that you will probably find a number of warning
|
||||
<note>
|
||||
<para>
|
||||
You will probably find a number of warning
|
||||
messages in make.log. Unless you have problems later on, these
|
||||
messages may be safely ignored.
|
||||
</Para>
|
||||
</note>
|
||||
|
||||
<Para>
|
||||
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.
|
||||
If the compiler fails with a message stating that
|
||||
the <application>flex</application> command
|
||||
cannot be found then install <application>flex</application> as described earlier.
|
||||
Next,
|
||||
change directory back to this directory, type
|
||||
<programlisting>
|
||||
$ make clean
|
||||
</programlisting>
|
||||
then recompile again.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
@ -446,10 +547,10 @@ Compile the program. Type
|
||||
be specified on the command line using the COPT variable.
|
||||
For example, typing
|
||||
<ProgramListing>
|
||||
gmake COPT="-g" all >& make.log &
|
||||
$ gmake COPT="-g" all >& make.log &
|
||||
</ProgramListing>
|
||||
would invoke your compiler's -g option in all steps of the
|
||||
build. See src/Makefile.global.in for further details.
|
||||
would invoke your compiler's <option>-g</option> option in all steps of the
|
||||
build. See <filename>src/Makefile.global.in</filename> for further details.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
@ -457,34 +558,38 @@ Compile the program. Type
|
||||
<Para>
|
||||
Install the program. Type
|
||||
<ProgramListing>
|
||||
cd /usr/src/pgsql/src
|
||||
gmake install >& make.install.log &
|
||||
tail -f make.install.log
|
||||
$ cd /usr/src/pgsql/src
|
||||
$ gmake install >& make.install.log &
|
||||
$ tail -f make.install.log
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
The last line displayed will be "gmake[1]: Leaving directory
|
||||
`/usr/src/pgsql/src/man'". At this point, or earlier if you wish,
|
||||
The last line displayed will be
|
||||
<programlisting>
|
||||
gmake[1]: Leaving directory `/usr/src/pgsql/src/man'
|
||||
</programlisting>
|
||||
At this point, or earlier if you wish,
|
||||
type control-C to get out of tail.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
14) If necessary, tell UNIX how to find your shared libraries. You can
|
||||
do ONE of the following, preferably the first:
|
||||
14) If necessary, tell your system how to find the new shared libraries. You can
|
||||
do <emphasis>one</emphasis> of the following, preferably the first:
|
||||
|
||||
<SubSteps>
|
||||
<Step Performance="optional">
|
||||
<Para>
|
||||
As root, edit file /etc/ld.so.conf. Add a line
|
||||
As root, edit file <filename>/etc/ld.so.conf</filename>. Add a line
|
||||
<programlisting>
|
||||
<FileName>/usr/local/pgsql/lib</FileName>
|
||||
</programlisting>
|
||||
to the file. Then run command <Command>/sbin/ldconfig</Command>.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="optional">
|
||||
<Para>
|
||||
In a bash shell, type
|
||||
@ -509,15 +614,18 @@ to the file. Then run command <Command>/sbin/ldconfig</Command>.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
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
|
||||
If, when you create the database, you get the message
|
||||
<programlisting>
|
||||
pg_id: can't load library 'libpq.so'
|
||||
</programlisting>
|
||||
then the above step was necessary. Simply
|
||||
do this step, then try to create the database again.
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
If it has not already been done, then prepare account postgres
|
||||
If it has not already been done, then prepare account <literal>postgres</literal>
|
||||
for using <ProductName>Postgres</ProductName>.
|
||||
Any account that will use <ProductName>Postgres</ProductName> must
|
||||
be similarily prepared. (The following instructions are for a
|
||||
@ -525,7 +633,7 @@ Any account that will use <ProductName>Postgres</ProductName> must
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
Add the following lines to your login shell, ~/.bash_profile:
|
||||
Add the following lines to your login shell, <filename>~/.bash_profile</filename>:
|
||||
<ProgramListing>
|
||||
PATH=$PATH:/usr/local/pgsql/bin
|
||||
MANPATH=$MANPATH:/usr/local/pgsql/man
|
||||
@ -539,7 +647,7 @@ Any account that will use <ProductName>Postgres</ProductName> must
|
||||
Make sure that you have defined these variables before continuing
|
||||
with the remaining steps. The easiest way to do this is to type:
|
||||
<ProgramListing>
|
||||
source ~/.bash_profile
|
||||
$ source ~/.bash_profile
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
</Step>
|
||||
@ -549,7 +657,7 @@ Any account that will use <ProductName>Postgres</ProductName> must
|
||||
Create the database. <Emphasis>Do not do the following as root!</Emphasis>
|
||||
This would be a major security hole. Type
|
||||
<ProgramListing>
|
||||
initdb
|
||||
$ initdb
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
</Step>
|
||||
@ -557,13 +665,13 @@ Any account that will use <ProductName>Postgres</ProductName> must
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Set up permissions to access the database system. Do this by editing
|
||||
file /usr/local/pgsql/data/pg_hba.conf. The instructions are
|
||||
file <filename>/usr/local/pgsql/data/pg_hba.conf</filename>. 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
|
||||
default location, i.e. if <envar>PGDATA</envar> 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 finished.
|
||||
|
||||
If you are upgrading from v6.0 or later you can copy file pg_hba.conf from
|
||||
If you are upgrading from v6.0 or later you can copy file <filename>pg_hba.conf</filename> from
|
||||
your old database on top of the one in your new database, rather than
|
||||
redoing the file from scratch.
|
||||
</Para>
|
||||
@ -571,76 +679,73 @@ Any account that will use <ProductName>Postgres</ProductName> must
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
|
||||
<Para>
|
||||
The file /usr/src/pgsql/src/test/regress/README has detailed
|
||||
Run the regression tests.
|
||||
The file <filename>/usr/src/pgsql/src/test/regress/README</filename> has detailed
|
||||
instructions for running and interpreting the regression tests.
|
||||
A short version follows here:
|
||||
</Para>
|
||||
|
||||
<substeps>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Run postmaster from your <ProductName>Postgres</ProductName> superuser account (typically
|
||||
account postgres).
|
||||
<emphasis>Do not run <application>postmaster</application> from the root account!</emphasis>
|
||||
Start the postmaster daemon running in the background by typing
|
||||
<ProgramListing>
|
||||
$ cd
|
||||
$ nohup postmaster > regress.log 2>&1 &
|
||||
</ProgramListing>
|
||||
Run postmaster from your <ProductName>Postgres</ProductName> super user account (typically
|
||||
account postgres).
|
||||
<emphasis>Do not run <application>postmaster</application> from the root account!</emphasis>
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Run the regression tests.
|
||||
(You can skip this step if you wish, but
|
||||
we think skipping the tests is a BAD idea!)
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
The file /usr/src/pgsql/src/test/regress/README has detailed
|
||||
instructions for running and interpreting the regression tests.
|
||||
A short version follows here:
|
||||
</Para>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
Type
|
||||
<ProgramListing>
|
||||
cd /usr/src/pgsql/src/test/regress
|
||||
gmake clean
|
||||
gmake all runtest
|
||||
$ cd /usr/src/pgsql/src/test/regress
|
||||
$ gmake clean
|
||||
$ gmake all runtest
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
You do not need to type "gmake clean" if this is the first time you
|
||||
You do not need to type <command>gmake clean</command>
|
||||
if this is the first time you
|
||||
are running the tests.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
You should get on the screen (and also written to file ./regress.out)
|
||||
You should get on the screen (and also written to file <filename>./regress.out</filename>)
|
||||
a series of statements stating which tests passed and which tests
|
||||
failed. Please note that it can be normal for some of the tests to
|
||||
"fail". The script says a test has failed if there is any difference
|
||||
failed. Please note that it can be normal for some tests to
|
||||
"fail" on some platforms.
|
||||
The script says a test has failed if there is any difference
|
||||
at all between the actual output of the test and the expected output.
|
||||
Thus, tests may "fail" due to minor differences in wording of error
|
||||
messages, small differences in floating-point roundoff, etc, between
|
||||
your system and the regression test reference platform.
|
||||
"Failures" of this type do not indicate a problem with
|
||||
<ProductName>Postgres</ProductName>.
|
||||
The file ./regression.diffs contains the textual differences between
|
||||
The file <filename>./regression.diffs</filename> contains the textual differences between
|
||||
the actual test output on your machine and the "expected" output
|
||||
(which is simply what the reference system produced). You should
|
||||
carefully examine each difference listed to see whether it appears to
|
||||
be a significant issue.
|
||||
</Para>
|
||||
|
||||
<para>
|
||||
For example,
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<Para>
|
||||
For a i686/Linux-ELF platform, no tests failed since this is the
|
||||
v6.4 regression testing reference platform.
|
||||
</Para>
|
||||
|
||||
<listitem>
|
||||
<Para>
|
||||
For the SPARC/Linux-ELF platform, using the 970525 beta version of
|
||||
<ProductName>Postgres</ProductName> v6.2 the following tests "failed":
|
||||
@ -648,11 +753,12 @@ $ nohup postmaster > regress.log 2>&1 &
|
||||
floating point numbers. select_views produces massively different output,
|
||||
but the differences are due to minor floating point differences.
|
||||
</Para>
|
||||
</itemizedlist>
|
||||
|
||||
<Para>
|
||||
Even if a test result clearly indicates a real failure, it may be a
|
||||
localized problem that will not affect you. An example is that the
|
||||
int8 test will fail, producing obviously incorrect output, if your
|
||||
<type>int8</type> test will fail, producing obviously incorrect output, if your
|
||||
machine and C compiler do not provide a 64-bit integer data type
|
||||
(or if they do but configure didn't discover it). This is not
|
||||
something to worry about unless you need to store 64-bit integers.
|
||||
@ -662,21 +768,25 @@ $ nohup postmaster > regress.log 2>&1 &
|
||||
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 <ProductName>Postgres</ProductName>. The regression
|
||||
tests are a helpful tool, but they require some study to be useful.
|
||||
tests are a helpful tool, but they may require some study to be useful.
|
||||
</Para>
|
||||
|
||||
<Para>
|
||||
After running the regression tests, type
|
||||
|
||||
<ProgramListing>
|
||||
destroydb regression
|
||||
cd /usr/src/pgsql/src/test/regress
|
||||
gmake clean
|
||||
$ destroydb regression
|
||||
$ cd /usr/src/pgsql/src/test/regress
|
||||
$ gmake clean
|
||||
</ProgramListing>
|
||||
|
||||
to recover the disk space used for the tests. (You may want to save
|
||||
the regression.diffs file in another place before doing this.)
|
||||
the <filename>regression.diffs</filename> file in another place before doing this.)
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
</substeps>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
If you haven't already done so, this would be a good time to modify
|
||||
@ -686,21 +796,32 @@ $ nohup postmaster > regress.log 2>&1 &
|
||||
Here are some suggestions on how to do this, contributed by various
|
||||
users.
|
||||
|
||||
Whatever you do, postmaster must be run by user postgres AND NOT BY
|
||||
ROOT. This is why all of the examples below start by switching user
|
||||
<para>
|
||||
Whatever you do, postmaster must be run by
|
||||
the <ProductName>Postgres</ProductName> superuser (<literal>postgres</literal>?)
|
||||
<emphasis>and not by root</emphasis>.
|
||||
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
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
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"
|
||||
<programlisting>
|
||||
su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data"
|
||||
</programlisting>
|
||||
|
||||
b) In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to
|
||||
<listitem>
|
||||
<para>
|
||||
In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to
|
||||
contain the following lines and make it chmod 755 and chown
|
||||
root:bin.
|
||||
|
||||
<programlisting>
|
||||
#!/bin/sh
|
||||
[ -x /usr/local/pgsql/bin/postmaster ] && {
|
||||
su -l pgsql -c 'exec /usr/local/pgsql/bin/postmaster
|
||||
@ -708,23 +829,37 @@ $ nohup postmaster > regress.log 2>&1 &
|
||||
-S -o -F > /usr/local/pgsql/errlog' &
|
||||
echo -n ' pgsql'
|
||||
}
|
||||
</programlisting>
|
||||
|
||||
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
|
||||
the postmaster process so the parent is init. Note: Unlike most
|
||||
other examples, this one has been tested.
|
||||
the postmaster process so the parent is init.
|
||||
|
||||
c) In RedHat v4.0 Linux edit file /etc/inittab to add the
|
||||
following single line:
|
||||
<listitem>
|
||||
<para>
|
||||
In RedHat Linux add a file <filename>/etc/rc.d/init.d/postgres.init</filename>
|
||||
which is based on the example in <filename>contrib/linux/</filename>.
|
||||
Then make a softlink to this file from
|
||||
<filename>/etc/rc.d/rc5.d/S98postgres.init</filename>.
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In RedHat Linux edit file /etc/inittab to add the
|
||||
following as a single line:
|
||||
|
||||
<programlisting>
|
||||
pg:2345:respawn:/bin/su - postgres -c
|
||||
"/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data
|
||||
>> /usr/local/pgsql/server.log 2>&1 </dev/null"
|
||||
>> /usr/local/pgsql/server.log 2>&1 </dev/null"
|
||||
</programlisting>
|
||||
|
||||
(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 <ProductName>Postgres</ProductName> distribution has an example
|
||||
init.d script compatible with and tested using recent RedHat packages.
|
||||
</itemizedlist>
|
||||
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
@ -739,7 +874,8 @@ $ nohup postmaster > regress.log 2>&1 &
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
Run the SQL command vacuum. This will clean up your database.
|
||||
Run the <acronym>SQL</acronym> command <command>VACUUM</command>.
|
||||
This will clean up your database.
|
||||
|
||||
<step performance="required">
|
||||
<para>
|
||||
@ -749,8 +885,10 @@ Back up your system. (You should probably keep the last few
|
||||
|
||||
</procedure>
|
||||
|
||||
<para>
|
||||
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
|
||||
run nightly or weekly by cron.
|
||||
Look at the man page for <application>crontab</application>
|
||||
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.)
|
||||
@ -762,18 +900,18 @@ Back up your system. (You should probably keep the last few
|
||||
If you are upgrading an existing system then reinstall your old database.
|
||||
Type
|
||||
<ProgramListing>
|
||||
cd
|
||||
psql -e template1 < db.out
|
||||
$ cd
|
||||
$ psql -e template1 < db.out
|
||||
</ProgramListing>
|
||||
|
||||
If your pre-v6.2 database uses either path or polygon geometric data types,
|
||||
then you will need to upgrade any columns containing those types. To
|
||||
do so, type (from within psql)
|
||||
<ProgramListing>
|
||||
update YourTable set PathCol = UpgradePath(PathCol);
|
||||
update YourTable set PolyCol = UpgradePoly(PolyCol);
|
||||
UPDATE <replaceable>FirstTable</replaceable> SET <replaceable>PathCol</replaceable> = UpgradePath(<replaceable>PathCol</replaceable>);
|
||||
UPDATE <replaceable>SecondTable</replaceable> SET <replaceable>PathCol</replaceable> = UpgradePath(<replaceable>PathCol</replaceable>);
|
||||
...
|
||||
vacuum;
|
||||
VACUUM;
|
||||
</ProgramListing>
|
||||
|
||||
UpgradePath() checks to see that a path value is consistant with the
|
||||
@ -795,34 +933,39 @@ Back up your system. (You should probably keep the last few
|
||||
<Para>
|
||||
Clean up after yourself. Type
|
||||
<ProgramListing>
|
||||
rm -rf /usr/src/pgsql_6_0
|
||||
rm -rf /usr/local/pgsql_6_0
|
||||
$ 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
|
||||
rm ~/postgresql-v6.2.1.tar.gz
|
||||
$ rm ~/postgresql-v6.2.1.tar.gz
|
||||
</ProgramListing>
|
||||
</Para>
|
||||
</Step>
|
||||
|
||||
<Step Performance="required">
|
||||
<Para>
|
||||
You will probably want to print out the documentation. Here is how
|
||||
You will probably want to print out the documentation. If you have
|
||||
a Postscript printer, or have your machine already set up to accept
|
||||
Postscript files using a print filter, then to print the User's Guide
|
||||
simply type
|
||||
|
||||
<programlisting>
|
||||
$ cd /usr/local/pgsql/doc
|
||||
$ gunzip user.ps.tz | lpr
|
||||
</programlisting>
|
||||
|
||||
<para>
|
||||
Here is how
|
||||
you might do it if you have Ghostscript on your system and are
|
||||
writing to a laserjet printer.
|
||||
|
||||
<programlisting>
|
||||
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
|
||||
$ alias gshp='gs -sDEVICE=laserjet -r300 -dNOPAUSE'
|
||||
$ export GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts
|
||||
$ gunzip user.ps.gz
|
||||
$ gshp -sOUTPUTFILE=user.hp user.ps
|
||||
$ gzip user.ps
|
||||
$ lpr -l -s -r manpage.hp
|
||||
</programlisting>
|
||||
|
||||
</Step>
|
||||
@ -834,7 +977,9 @@ Back up your system. (You should probably keep the last few
|
||||
supported platforms. We therefore ask you to let us know if you did
|
||||
or did not get <ProductName>Postgres</ProductName> to work on you system.
|
||||
Please send a
|
||||
mail message to pgsql-ports@postgresql.org telling us the following:
|
||||
mail message to
|
||||
<ulink url="mailto:pgsql-ports@postgresql.org">pgsql-ports@postgresql.org</ulink>
|
||||
telling us the following:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@ -987,14 +1132,21 @@ and look for the mailing lists.
|
||||
|
||||
<Note>
|
||||
<Para>
|
||||
For some ports, these notes may be out of date.
|
||||
Check for any platform-specific FAQs in the <filename>doc/</filename> directory of
|
||||
the source distribution. For some ports, the notes below may be out of date.
|
||||
</Para>
|
||||
</Note>
|
||||
|
||||
<Sect2>
|
||||
<Title>Ultrix4.x</Title>
|
||||
|
||||
<Para>
|
||||
<para>
|
||||
<note>
|
||||
<para>
|
||||
There have been no recent reports of Ultrix usage with <productname>Postgres</productname>.
|
||||
</note>
|
||||
|
||||
<para>
|
||||
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
|
||||
@ -1058,7 +1210,7 @@ The linux-elf port installs cleanly. See the Linux FAQ for more details.
|
||||
the general public. Contact Info@RnA.nl for information.
|
||||
|
||||
<Para>
|
||||
We have no recent reports of successful NeXT installations (for v6.2.1).
|
||||
We have no recent reports of successful NeXT installations (as of v6.2.1).
|
||||
However, the client-side libraries should work even
|
||||
if the backend is not supported.
|
||||
</Para>
|
||||
|
Reference in New Issue
Block a user