INSTALL 29 KB
Newer Older
Marc G. Fournier's avatar
Marc G. Fournier committed
1
POSTGRESQL INSTALLATION INSTRUCTIONS
2
Copyright (c) 1997 Regents of  the University of California
Marc G. Fournier's avatar
Marc G. Fournier committed
3

4
This is file /usr/src/pgsql/INSTALL.  It contains notes on how to install
Bruce Momjian's avatar
Bruce Momjian committed
5
PostgreSQL v6.3.2.  Up to date information on PostgreSQL may be found at
6 7
http://www.postgresql.org.

8
PostgreSQL is an RDBMS database server.  It is not completely ANSI SQL
9 10 11 12 13
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
14 15
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.
16

17
The installation notes below assume the following (except where noted):
18 19
  - Commands are Unix-compatible. See note below.
  - Defaults are used except where noted.
20
  - User postgres is the Postgres superuser.
21 22 23 24 25 26 27
  - 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.
28 29 30 31 32 33 34 35

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) 

36

Marc G. Fournier's avatar
Marc G. Fournier committed
37
REQUIREMENTS TO RUN POSTGRESQL
38
------------------------------
Marc G. Fournier's avatar
Marc G. Fournier committed
39

Marc G. Fournier's avatar
Marc G. Fournier committed
40
PostgreSQL has been tested on the following platforms:
Marc G. Fournier's avatar
Marc G. Fournier committed
41

Bruce Momjian's avatar
Bruce Momjian committed
42
   aix            IBM on AIX 3.2.5 or 4.x
Bruce Momjian's avatar
Bruce Momjian committed
43
   alpha          DEC Alpha AXP on Digital Unix 2.0, 3.2, 4.0
44
   BSD44_derived  OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
Bruce Momjian's avatar
Bruce Momjian committed
45
   bsdi           BSD/OS 2.0, 2.01, 2.1, 3.0
Bruce Momjian's avatar
Bruce Momjian committed
46
   dgux           DG/UX 5.4R4.11
Bruce Momjian's avatar
Bruce Momjian committed
47
   hpux           HP PA-RISC on HP-UX 9.0, 10
48 49
   i386_solaris   i386 Solaris
   irix5          SGI MIPS on IRIX 5.3
50
   linux          Intel x86 on Linux 2.0 and Linux ELF
51
                  SPARC on Linux ELF
Bruce Momjian's avatar
Bruce Momjian committed
52
                  PPC on Linux ELF
53
                  (For non-ELF Linux, see LINUX_ELF below).
Bruce Momjian's avatar
Bruce Momjian committed
54
   sco            SCO 3.2v5
Bruce Momjian's avatar
Bruce Momjian committed
55
   sparc_solaris  SUN SPARC on Solaris 2.4, 2.5, 2.5.1
56
   sunos4         SUN SPARC on SunOS 4.1.3
57
   svr4           Intel x86 on Intel SVR4 and MIPS
58
   ultrix4        DEC MIPS on Ultrix 4.4
Marc G. Fournier's avatar
Marc G. Fournier committed
59

60 61 62 63
PostgreSQL has known problems/bugs on the following platforms:

   nextstep       Motorola MC68K or Intel x86 on NeXTSTEP 3.2

Marc G. Fournier's avatar
Marc G. Fournier committed
64
PostgreSQL is also known to work on a number of other platforms that the
65
authors have not personally tested.
Marc G. Fournier's avatar
Marc G. Fournier committed
66

67 68 69
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.
Marc G. Fournier's avatar
Marc G. Fournier committed
70

Bruce Momjian's avatar
Bruce Momjian committed
71 72 73 74 75 76 77 78 79
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.


80 81
To those doing a fresh install or upgrading from previous releases of
PostgreSQL:
82 83 84 85 86
----------------------------------------------

  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
87 88 89 90
     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.
91

92 93 94 95 96 97 98 99 100
     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.

101 102 103 104
  2) Create account postgres if it does not already exist.

  3) Log into account postgres.

105 106 107
  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.
Bruce Momjian's avatar
Bruce Momjian committed
108 109
      For the regression tests, you will need an extra 20 Mbytes.
      You will also need about 3 Mbytes for the distribution tar file.
110 111

      We therefore recommend that during installation and testing you
Bruce Momjian's avatar
Bruce Momjian committed
112
      have well over 20 Mbytes free under /usr/local and another 5 MB
113 114 115 116 117 118 119 120
      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".

121
  4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-6.3.2.tar.gz from the
122
     Internet.  Store it in your home directory.
123

124 125
  5) Some platforms use flex.  If your system uses flex then make sure
     you have a good version.  Type
126
        flex --version
127

128
     If the flex command is not found then you probably do not need it.
129 130 131 132
     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.

133 134 135 136 137 138
     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.

139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
     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.

155
  6) If you are upgrading an existing system then back up your database.
156 157 158 159
     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
Bruce Momjian's avatar
Bruce Momjian committed
160 161
     step.  Type (with the gunzip line and the following line typed as one
     line):
162
        cd
163
        gunzip -c postgresql-6.3.2.tar.gz |
164 165 166 167 168 169 170
            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.
171

172 173 174 175
     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.

176 177 178
     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.
Bruce Momjian's avatar
Bruce Momjian committed
179 180

     You should also read the appropriate files pgsql/migration/*.
181 182 183 184 185

     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.
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

  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.

214 215 216 217
  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
218 219 220
        su
        cd /usr/src
        mkdir pgsql
221
        chown postgres:postgres pgsql
222 223
        cd /usr/local
        mkdir pgsql
224
        chown postgres:postgres pgsql
225 226 227 228
        exit

 10) Unzip and untar the new source file.  Type
        cd /usr/src/pgsql
229
        gunzip -c ~/postgresql-6.3.2.tar.gz | tar xvf -
230

231 232 233
 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
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
        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.

255
       --enable-hba       Enables Host Based Authentication (DEFAULT)
256 257 258

       --enable-locale    Enables USE_LOCALE

259
       --enable-cassert   Enables ASSERT_CHECKING
260 261 262 263 264 265 266 267 268 269 270 271 272

       --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.

273 274 275
       --with-tcl         Enables programs requiring Tcl/Tk and X11,
                          including pgtclsh and libpgtcl.

276
       --with-perl        Enables the perl interface.
277

278 279 280 281 282
       --with-includes=DIRS
                          Include DIRS in list of directories searched
                          for header files.  (Typical use will need
                          --with-includes=/usr/local/include)

283
       --with-libs=DIRS
284 285 286 287 288
       --with-libraries=DIRS
                          Include DIRS in list of directories searched
                          for archive libraries.  (Typical use will need
                          --with-libraries=/usr/local/lib)

289 290 291 292
     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 
293
		--with-template=sparc_solaris-gcc --with-pgport=5432
294
		--enable-hba
295

296 297 298
     Of course, in a real shell, you would type these three lines all
     on the same line.

299
 12) Compile the program.  Type
300
        cd /usr/src/pgsql/src
301
        gmake all >& make.log &
302
        tail -f make.log
303

304 305 306 307 308 309 310 311 312 313 314 315 316
     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.

317 318 319 320 321 322
     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
323
        cd /usr/src/pgsql/src
324
        gmake install >& make.install.log &
325
        tail -f make.install.log
326

327 328 329 330
     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.

331
 14) If necessary, tell UNIX how to find your shared libraries.  If you
332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351
     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.

352
 15) If it has not already been done, then prepare account postgres
353 354 355 356 357 358
     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
Bruce Momjian's avatar
Bruce Momjian committed
359
        MANPATH=$MANPATH:/usr/local/pgsql/man
360 361 362 363 364 365 366 367
        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

368
 16) Create the database.  DO NOT DO THE FOLLOWING AS ROOT!  This would
369 370 371
     be a major security hole.  Type
        initdb

372
 17) Set up permissions to access the database system.  Do this by editing
373 374 375 376 377 378
     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.

Bruce Momjian's avatar
Bruce Momjian committed
379 380 381 382
     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.

383

384 385
 18) If you wish to skip the regression tests then skip to step 21.

386 387 388 389
     The file /usr/src/pgsql/src/test/regress/README has detailed
     instructions for running and interpreting the regression tests.
     A short version follows here:

390
     Start the postmaster in preparation for the regression tests.  First,
391
     set the timezone for Berkeley, California.  On some systems you may do
392
     this by setting environment variable TZ.  I.e., using bash, type
393
        export TZ=PST8PDT
394

395 396 397
     Now start the postmaster daemon running in the background by typing
        cd
        nohup postmaster > regress.log 2>&1 &
398

399
     Run postmaster from your Postgres super user account (typically
400
     account postgres).  DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
401

402
 19) Run the regression tests.  Type
403 404 405 406 407 408 409 410 411 412

        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
413 414 415 416
     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:
417 418
        cd /usr/src/pgsql/src/test/regress
        diff -w expected/float8.out results
419 420 421 422 423 424

    "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.

425
     For a i686/Linux-ELF platform, no tests failed since this is the
Bruce Momjian's avatar
Bruce Momjian committed
426
     v6.3.2 regression testing reference platform.
427

428 429
     For the SPARC/Linux-ELF platform, using the 970525 beta version of
     PostgreSQL v6.2 the following tests "failed":
430
     float8 and geometry "failed" due to minor precision differences in
431 432
     floating point numbers.  select_views produces massively different output,
     but the differences are due to minor floating point differences.
433 434 435 436 437

     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
Bruce Momjian's avatar
Bruce Momjian committed
438
     bug fixes from v6.2.1, and that previous versions of PostgreSQL have been
439
     in use successfully for some time now.
440 441

     After running the tests, type
442
        destroydb regression
443 444 445
        cd /usr/src/pgsql/src/test/regress
        gmake clean

446 447 448 449
 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.
450

451
 21) Start the postmaster daemon running.  Type
452 453
        cd
        nohup postmaster > server.log 2>&1 &
454
     Run postmaster from your Postgres super user account (typically
455
     account postgres).  DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
456

457
 22) If you haven't already done so, this would be a good time to modify
458 459 460 461 462 463
     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.

464
     Whatever you do, postmaster must be run by user postgres AND NOT BY
465 466 467 468 469 470 471 472 473 474 475
     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"

476
       b) In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to
477 478
          contain the following lines and make it chmod 755 and chown
          root:bin.
479
             #!/bin/sh
480
             [ -x /usr/local/pgsql/bin/postmaster ] && {
481
               su -l postgres -c 'exec /usr/local/pgsql/bin/postmaster
482 483 484 485 486 487 488
                       -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
489
          the postmaster process so the parent is init.  Note:  Unlike most
490
          other examples, this one has been tested.
491

492 493 494 495
       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
Bruce Momjian's avatar
Bruce Momjian committed
496
                     >> /usr/local/pgsql/server.log 2>&1" >/dev/null
497 498 499 500 501 502
          (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.
503

504 505 506 507 508 509 510 511 512 513 514 515 516 517
 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.)
518

Bruce Momjian's avatar
Bruce Momjian committed
519
 23) If you are upgrading an existing system then reload your old database.
520 521 522 523
     Type
        cd
        psql -e template1 < db.out

524
     If your pre-v6.2 database uses either path or polygon geometric data types,
525 526 527 528 529 530 531 532 533 534 535 536 537
     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.

538
 24) If you are a new user, you may wish to play with Postgres as described
539 540
     below.

541
 25) Clean up after yourself.  Type
542 543 544 545
        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
546
        rm ~/postgresql-6.3.2.tar.gz
547

548
 26) You will probably want to print out the documentation.  Here is how
549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568
     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.

569 570 571 572
 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:
573
       - The version of PostgreSQL (6.3.2, 6.2.1, beta 970703, etc.).
574 575 576 577 578 579 580 581 582
       - 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
583
     programs to access the database server.  In other words, ENJOY!
584 585


Marc G. Fournier's avatar
Marc G. Fournier committed
586
PLAYING WITH POSTGRESQL
587
-----------------------
Marc G. Fournier's avatar
Marc G. Fournier committed
588

Marc G. Fournier's avatar
Marc G. Fournier committed
589
After PostgreSQL is installed, a database system is created, a postmaster
590
daemon is running, and the regression tests have passed, you'll want to 
Marc G. Fournier's avatar
Marc G. Fournier committed
591 592
see PostgreSQL do something.  That's easy.  Invoke the interactive interface
to PostgreSQL, psql, and start typing SQL:
Marc G. Fournier's avatar
Marc G. Fournier committed
593

594
  $ psql template1
Marc G. Fournier's avatar
Marc G. Fournier committed
595

596 597 598
(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).
Marc G. Fournier's avatar
Marc G. Fournier committed
599

600
The response from psql is:
Marc G. Fournier's avatar
Marc G. Fournier committed
601 602 603 604

  type \? for help on slash commands
  type \q to quit
  type \g or terminate with semicolon to execute query
605
You are currently connected to the database: template1
Marc G. Fournier's avatar
Marc G. Fournier committed
606

607
template1=> 
Marc G. Fournier's avatar
Marc G. Fournier committed
608

609 610 611 612 613
Create the database foo:

template1=> CREATE DATABASE FOO;
INSERT 773248

614 615 616
(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.)
617 618 619 620 621

template1=> \c foo
closing connection to database: template1
connecting to new database: foo

622
(\ commands aren't SQL, so no semicolon.  Use \? to see all the \ commands.)
623

624
foo=> CREATE TABLE bar (column1 int4, column2 char16);
625 626
CREATE

627
foo=> \d bar
628 629 630 631 632 633

...

You get the idea.


634 635
QUESTIONS?  BUGS?  FEEDBACK?
----------------------------
636

637 638
First, read the files in directory /usr/src/pgsql/doc.  The FAQ in
this directory may be particularly useful.
Marc G. Fournier's avatar
Marc G. Fournier committed
639

640
If PostgreSQL failed to compile on your computer then fill out the form
641 642
in file /usr/src/pgsql/doc/bug.template and mail it to the location
indicated at the top of the form.
Marc G. Fournier's avatar
Marc G. Fournier committed
643

644 645 646
Mail questions to pgsql-questions@postgresql.org.  For more information
on the various mailing lists, see http://www.postgresql.org under mailing
lists.
Marc G. Fournier's avatar
Marc G. Fournier committed
647 648


649 650 651 652 653 654 655 656 657 658 659
----------------------------------------------------------------------

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:
660 661
        A linux-2.0.30/libc-5.3.12/RedHat-4.2 running on a dual processor
        i686 is the regression testing reference machine.
662 663 664 665 666 667 668 669
        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
670
                                <lockhart@alumni.caltech.edu> 97/10/14)
671 672

        For non-ELF Linux, the dld library MUST be obtained and installed on
673
        the system. It enables dynamic link loading capability to the Postgres
674 675
        port. The dld library can be obtained from the sunsite linux
        distributions. The current name is dld-3.2.5.
676 677 678 679
                                (Jalon Q. Zimmerman
                                <sneaker@powergrid.electriciti.com> 5/11/95)

BSD/OS:
680
        For BSD/OS 2.0 and 2.01, you will need to get the GNU dld library.
681 682 683 684 685 686 687 688 689

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.