Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/install.sgml')
-rw-r--r--doc/src/sgml/install.sgml1032
1 files changed, 1032 insertions, 0 deletions
diff --git a/doc/src/sgml/install.sgml b/doc/src/sgml/install.sgml
new file mode 100644
index 00000000000..06b284882fe
--- /dev/null
+++ b/doc/src/sgml/install.sgml
@@ -0,0 +1,1032 @@
+<Chapter>
+<Title>Installation</Title>
+
+<Abstract>
+<Para>
+Complete installation instructions for <ProductName>Postgres</ProductName> v6.3.
+</Para>
+</Abstract>
+
+<Para>
+ This procedure is
+This is based on the installation instructions
+for <ProductName>Postgres</ProductName> v6.3
+found in <FileName>&dollar;PGROOT/INSTALL</FileName>.
+ Up to date information on <ProductName>Postgres</ProductName> may be found at
+<ULink url="http://www.postgresql.org">www.postgresql.org</ULink>.
+</Para>
+
+<Para>
+The installation notes below assume the following (except where noted):
+<ItemizedList Mark="bullet" Spacing="compact">
+<ListItem>
+<Para>
+Commands are Unix-compatible. See note below.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+Defaults are used except where noted.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+User postgres is the <ProductName>Postgres</ProductName> superuser.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+The source path is /usr/src/pgsql (other paths are possible).
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+The runtime path is /usr/local/pgsql (other paths are possible).
+</Para>
+</ListItem>
+</ItemizedList>
+
+<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.
+</Para>
+
+<Para>
+Our Makefiles require GNU <Application>make</Application> (called <Quote>gmake</Quote> in this document) and
+also assume that <Application>install</Application> accepts BSD options. The INSTALL
+variable in the Makefiles is set to the BSD-compatible version of
+<Application>install</Application>. On some systems, you will have to find a BSD-compatible
+<Application>install</Application> (eg. <Application>bsdinst</Application>, which comes with the MIT X Window System
+distribution).
+</Para>
+
+<Sect1>
+<Title>Requirements to Run <ProductName>Postgres</ProductName></Title>
+
+<Para>
+Information on supported platforms is another chapter. In general, most Unix-compatible
+platforms with modern libraries should be able to run <ProductName>Postgres</ProductName>.
+
+<Para>
+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.
+</Para>
+
+</Sect1>
+
+<Sect1>
+<Title>Installation Procedure</Title>
+
+<Para>
+<Procedure>
+<Title><ProductName>Postgres</ProductName> Installation</Title>
+
+<Para>
+For a fresh install or upgrading from previous releases of
+<ProductName>Postgres</ProductName>:
+</Para>
+
+<Step Performance="required">
+<Para>
+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
+ files in directory <FileName>/usr/src/pgsql/doc</FileName>, including files FAQ-Irix
+ and FAQ-Linux. Also look in directory
+<ULink url="ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</ULink>.
+ If there is a file called INSTALL in this directory then this
+ file will contain the latest installation information.
+</Para>
+
+<Para>
+ 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 <ProductName>Postgres</ProductName> 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
+<ULink url="ftp://ftp.postgresql.org/pub/INSTALL">ftp://ftp.postgresql.org/pub/INSTALL</ULink>.
+</Para>
+</Step>
+
+<Step Performance="optional">
+<Para>
+Create account postgres if it does not already exist.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+Log into account postgres.
+</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
+ (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
+ distribution tar file.
+</Para>
+
+<Para>
+ We therefore recommend that during installation and testing you
+ have well over 20 Mbytes free under /usr/local 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
+ 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>.
+</Para>
+</Step>
+</SubSteps>
+</Step>
+
+<Step Performance="required">
+<Para>
+Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.3.tar.gz 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>.
+</Para>
+
+<Para>
+ If the flex 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.
+</Para>
+
+<Para>
+ 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.
+</Para>
+
+<Para>
+ To install it, 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
+</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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<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
+ 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
+ will be owned by the <ProductName>Postgres</ProductName> super user.
+ Type (with the gunzip line
+ and the following line typed as one line):
+<ProgramListing>
+ cd
+ gunzip -c postgresql-v6.3.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.
+</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"
+ several times to see if the size of the file is growing.
+</Para>
+
+<Para>
+ 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/*.
+</Para>
+
+<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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+If you are upgrading an existing system then kill the postmaster. Type
+<ProgramListing>
+ 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+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.
+</Para>
+
+<Para>
+ Type the following:
+ su
+ cd /usr/src
+ mv pgsql pgsql_6_0
+ cd /usr/local
+ mv pgsql pgsql_6_0
+ exit
+</Para>
+
+<Para>
+ 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Make new source and install directories. The actual paths can be
+ different for your installation; be consistant throughout this procedure.
+ Type
+<ProgramListing>
+ su
+ cd /usr/src
+ mkdir pgsql
+ chown postgres:postgres pgsql
+ cd /usr/local
+ mkdir pgsql
+ chown postgres:postgres pgsql
+ exit
+</ProgramListing>
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Unzip and untar the new source file. Type
+<ProgramListing>
+ cd /usr/src/pgsql
+ gunzip -c ~/postgresql-v6.3.tar.gz | tar xvf -
+</ProgramListing>
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ 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
+<ProgramListing>
+ cd /usr/src/pgsql/src
+ ./configure
+</ProgramListing>
+</Para>
+
+<Para>
+ 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.)
+</Para>
+
+<Para>
+ 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:
+
+<ProgramListing>
+ --prefix=BASEDIR Selects a different base directory for the
+ installation of the <ProductName>Postgres</ProductName> configuration.
+ The default is /usr/local/pgsql.
+
+ --enable-hba Enables Host Based Authentication (DEFAULT)
+
+ --disable-hba Disables Host Based Authentication
+
+ --enable-locale Enables USE_LOCALE
+
+ --disable-locale Disables USE_LOCALE (DEFAULT)
+
+ --enable-cassert Enables ASSERT_CHECKING
+
+ --disable-cassert Disables ASSERT_CHECKING (DEFAULT)
+
+ --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.
+</ProgramListing>
+</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.
+
+<ProgramListing>
+ ./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
+ on the same line.
+</Para>
+</Step>
+
+<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
+ 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
+ messages in make.log. Unless you have problems later on, these
+ messages may be safely ignored.
+</Para>
+
+<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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Install the program. Type
+<ProgramListing>
+ 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,
+ type control-C to get out of tail.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ If necessary, tell UNIX how to find your shared libraries. If you
+ are using Linux-ELF do ONE of the following, preferably the first:
+<SubSteps>
+<Step Performance="optional">
+<Para>
+ As root, edit file /etc/ld.so.conf. Add line
+ <FileName>/usr/local/pgsql/lib</FileName>
+ to the file. Then run command <Command>/sbin/ldconfig</Command>.
+</Para>
+</Step>
+<Step Performance="optional">
+<Para>
+ In a bash shell, type
+<ProgramListing>
+ export LD_LIBRARY_PATH=/usr/local/pgsql/lib
+</ProgramListing>
+</Para>
+</Step>
+<Step Performance="optional">
+<Para>
+ In a csh shell, type
+<ProgramListing>
+ setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
+</ProgramListing>
+</Step>
+</SubSteps>
+
+<Para>
+ 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.
+</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
+ 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
+ for using <ProductName>Postgres</ProductName>. Any account that will use <ProductName>Postgres</ProductName> must
+ be similarily prepared. (The following instructions are for a
+ bash shell. Adapt accordingly for other shells.)
+</Para>
+
+<Para>
+ Add the following lines to your login shell, ~/.bash_profile:
+<ProgramListing>
+ PATH=$PATH:/usr/local/pgsql/bin
+ MANPATH=$MANPATH:/usr/local/pgsql/man
+ PGLIB=/usr/local/pgsql/lib
+ PGDATA=/usr/local/pgsql/data
+ export PATH MANPATH PGLIB PGDATA
+</ProgramListing>
+</Para>
+
+<Para>
+ 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
+</ProgramListing>
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Create the database. <Emphasis>Do not do the following as root!</Emphasis>
+ This would be a major security hole. Type
+<ProgramListing>
+ initdb
+</ProgramListing>
+</Para>
+</Step>
+
+<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
+ 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.
+
+ If you are upgrading from v6.0 you can copy file pg_hba.conf from
+ your old database on top of the one in your new database, rather than
+ redoing this from scratch.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+You may wish to skip the regression tests.
+ However, 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>
+
+<Para>
+ Start the postmaster daemon running in the background by typing
+<ProgramListing>
+ cd
+ nohup postmaster > regress.log 2>&1 &
+</ProgramListing>
+</Para>
+
+<Para>
+ Run postmaster from your <ProductName>Postgres</ProductName> super user account (typically
+ account postgres). DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+
+ Run the regression tests. Type
+
+<ProgramListing>
+ cd
+ 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
+ are running the tests.
+</Para>
+
+<Para>
+
+ You should get on the screen (and also written to file ./regress.out)
+ 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". For the failed tests, use diff to compare the files in
+ directories ./results and ./expected. If float8 failed, type
+ something like:
+<ProgramListing>
+ cd /usr/src/pgsql/src/test/regress
+ diff -w expected/float8.out results
+</ProgramListing>
+</Para>
+
+<Para>
+
+ "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
+ <ProductName>Postgres</ProductName>.
+</Para>
+
+<Para>
+
+ For a i686/Linux-ELF platform, no tests failed since this is the
+ v6.3 regression testing reference platform.
+</Para>
+
+<Para>
+ For the SPARC/Linux-ELF platform, using the 970525 beta version of
+ <ProductName>Postgres</ProductName> v6.2 the following tests "failed":
+ float8 and geometry "failed" due to minor precision differences in
+ floating point numbers. select_views produces massively different output,
+ but the differences are due to minor floating point differences.
+</Para>
+
+<Para>
+ 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>. However, keep in mind that this is likely
+ to be the most solid release of <ProductName>Postgres</ProductName> to date, incorporating many
+ bug fixes from v6.2.1, and that previous versions of <ProductName>Postgres</ProductName> have been
+ in use successfully for some time now.
+</Para>
+
+<Para>
+ After running the tests, type
+<ProgramListing>
+ destroydb regression
+ cd /usr/src/pgsql/src/test/regress
+ gmake clean
+</ProgramListing>
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+
+ 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+
+ Start the postmaster daemon running. Type
+<ProgramListing>
+ cd
+ nohup postmaster > server.log 2>&1 &
+</ProgramListing>
+ Run postmaster from your <ProductName>Postgres</ProductName> super user account (typically
+ account postgres). DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ If you haven't already done so, this would be a good time to modify
+ 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.
+
+ 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
+ (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"
+
+ b) 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.
+ #!/bin/sh
+ [ -x /usr/local/pgsql/bin/postmaster ] && {
+ su -l pgsql -c 'exec /usr/local/pgsql/bin/postmaster
+ -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
+ the postmaster process so the parent is init. Note: Unlike most
+ other examples, this one has been tested.
+
+ 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
+ >> /usr/local/pgsql/server.log 2>&1" /dev/null
+ (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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ 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.)
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ If you are upgrading an existing system then install your old database.
+ Type
+<ProgramListing>
+ 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);
+ ...
+ vacuum;
+</ProgramListing>
+
+ 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ If you are a new user, you may wish to play with <ProductName>Postgres</ProductName> as described
+ below.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Clean up after yourself. Type
+<ProgramListing>
+ 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
+</ProgramListing>
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ You will probably want to print out the documentation. Here is how
+ 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ The <ProductName>Postgres</ProductName> team wants to keep <ProductName>Postgres</ProductName> working on all of the
+ 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:
+ - The version of <ProductName>Postgres</ProductName> (v6.2.1, 6.1.1, beta 970703, etc.).
+ - 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.
+</Para>
+</Step>
+
+<Step Performance="required">
+<Para>
+ Now create, access and manipulate databases as desired. Write client
+ programs to access the database server. In other words, ENJOY!
+</Para>
+</Step>
+</Procedure>
+
+<Sect1>
+<Title>Playing with <ProductName>Postgres</ProductName></Title>
+
+<Para>
+After <ProductName>Postgres</ProductName> is installed, a database system is created, a postmaster
+daemon is running, and the regression tests have passed, you'll want to
+see <ProductName>Postgres</ProductName> do something. That's easy. Invoke the interactive interface
+to <ProductName>Postgres</ProductName>, <Application>psql</Application>:
+
+<ProgramListing>
+ % psql template1
+</ProgramListing>
+
+(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.)
+</Para>
+
+<Para>
+The response from psql is:
+
+<ProgramListing>
+Welcome to the POSTGRESQL interactive sql monitor:
+ Please read the file COPYRIGHT for copyright terms of POSTGRESQL
+
+ type \? for help on slash commands
+ type \q to quit
+ type \g or terminate with semicolon to execute query
+ You are currently connected to the database: template1
+
+template1=>
+</ProgramListing>
+</Para>
+
+<Para>
+Create the database foo:
+
+<ProgramListing>
+template1=> create database foo;
+CREATEDB
+</ProgramListing>
+
+(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.)
+</Para>
+
+<Para>
+Now connect to the new database:
+
+<ProgramListing>
+template1=> \c foo
+connecting to new database: foo
+</ProgramListing>
+
+("slash" commands aren't SQL, so no semicolon. Use \? to see all the slash commands.)
+</Para>
+
+<Para>
+And create a table:
+
+<ProgramListing>
+foo=> create table bar (i int4, c char(16));
+CREATE
+</ProgramListing>
+</Para>
+
+<Para>
+Then inspect the new table:
+
+<ProgramListing>
+foo=> \d bar
+
+Table = bar
++----------------------------------+----------------------------------+-------+
+| Field | Type | Length|
++----------------------------------+----------------------------------+-------+
+| i | int4 | 4 |
+| c | (bp)char | 16 |
++----------------------------------+----------------------------------+-------+
+</ProgramListing>
+</Para>
+
+<Para>
+And so on. You get the idea.
+</Para>
+</Sect1>
+
+<Sect1>
+<Title>The Next Step</Title>
+
+<Para>
+Questions? Bugs? Feedback?
+First, read the files in directory /usr/src/pgsql/doc. The FAQ in
+this directory may be particularly useful.
+</Para>
+
+<Para>
+If <ProductName>Postgres</ProductName> failed to compile on your computer then fill out the form
+in file /usr/src/pgsql/doc/bug.template and mail it to the location
+indicated at the top of the form.
+</Para>
+
+<Para>
+Mail questions to
+<ULink url="pgsql-questions@postgresql.org">pgsql-questions@postgresql.org</ULink>.
+For more information on the various mailing lists, see
+<ULink url="http://www.postgresql.org">http://www.postgresql.org</ULink>
+and look for the mailing lists.
+</Para>
+</Sect1>
+
+<Sect1>
+<Title>Porting Notes</Title>
+
+<Note>
+<Para>
+For some ports, these notes may be out of date.
+</Para>
+</Note>
+
+<Sect2>
+<Title>Ultrix4.x</Title>
+
+<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
+</Para>
+</Sect2>
+
+<Sect2>
+<Title>Linux</Title>
+
+<Sect3>
+<Sect3Info>
+<Author>
+<FirstName>Thomas G.</FirstName>
+<SurName>Lockhart</SurName>
+</Author>
+<Date>1998-02-19</Date>
+</Sect3Info>
+<Title>Linux ELF</Title>
+
+<Para>
+The regression test reference machine is
+a linux-2.0.30/libc-5.3.12/RedHat-4.2 installation running on a dual processor i686.
+The linux-elf port installs cleanly. See the Linux FAQ for more details.
+</Para>
+</Sect3>
+
+<Sect3>
+<Sect3Info>
+<Date>1995-05-11</Date>
+</Sect3Info>
+<Title>Linux a.out</Title>
+
+<Para>
+ For non-ELF Linux, the dld library MUST be obtained and installed on
+ the system. It enables dynamic link loading capability to the <ProductName>Postgres</ProductName>
+ port. The dld library can be obtained from the sunsite linux
+ distributions. The current name is dld-3.2.5.
+<ULink url="sneaker@powergrid.electriciti.com">Jalon Q. Zimmerman</ULink>
+</Para>
+</Sect3>
+</Sect2>
+
+<Sect2>
+<Title>BSD/OS</Title>
+
+<Para>
+ For BSD/OS 2.0 and 2.01, you will need to get the GNU dld library.
+</Para>
+</Sect2>
+
+<Sect2>
+<Title>NeXT</Title>
+
+<Para>
+ The NeXT port for v1.09 was supplied by
+<ULink url="mailto:tom@basil.icce.rug.nl">Tom R. Hageman</ULink>.
+ 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 <ProductName>Postgres</ProductName> for NEXTSTEP will be made available to
+ the general public. Contact Info@RnA.nl for information.
+
+<Para>
+We have no recent reports of successful NeXT installations (for v6.2.1).
+However, the client-side libraries should work even
+if the backend is not supported.
+</Para>
+</Sect2>
+</Sect1>
+
+</Chapter>