]> granicus.if.org Git - postgresql/blob - doc/src/sgml/installation.sgml
Add port report
[postgresql] / doc / src / sgml / installation.sgml
1 <!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.215 2004/12/16 11:23:16 petere Exp $ -->
2
3 <chapter id="installation">
4  <title><![%standalone-include[<productname>PostgreSQL</>]]>
5   Installation Instructions</title>
6
7  <indexterm zone="installation">
8   <primary>installation</primary>
9  </indexterm>
10
11  <para>
12   This <![%standalone-include;[document]]>
13   <![%standalone-ignore;[chapter]]> describes the installation of
14   <productname>PostgreSQL</productname> from the source code
15   distribution.
16  </para>
17
18  <sect1 id="install-short">
19   <title>Short Version</title>
20
21   <para>
22 <synopsis>
23 ./configure
24 gmake
25 su
26 gmake install
27 adduser postgres
28 mkdir /usr/local/pgsql/data
29 chown postgres /usr/local/pgsql/data
30 su - postgres
31 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
32 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &gt;logfile 2&gt;&amp;1 &amp;
33 /usr/local/pgsql/bin/createdb test
34 /usr/local/pgsql/bin/psql test
35 </synopsis>
36    The long version is the rest of this
37    <![%standalone-include;[document.]]>
38    <![%standalone-ignore;[chapter.]]>
39   </para>
40  </sect1>
41
42
43  <sect1 id="install-requirements">
44   <title>Requirements</title>
45
46   <para>
47    In general, a modern Unix-compatible platform should be able to run
48    <productname>PostgreSQL</>.
49     The platforms that had received specific testing at the
50    time of release are listed in <xref linkend="supported-platforms">
51    below. In the <filename>doc</> subdirectory of the distribution
52    there are several platform-specific <acronym>FAQ</> documents you
53    might wish to consult if you are having trouble.
54   </para>
55
56   <para>
57    The following software packages are required for building
58    <productname>PostgreSQL</>:
59
60    <itemizedlist>
61     <listitem>
62      <para>
63       <indexterm>
64        <primary>make</primary>
65       </indexterm>
66
67       <acronym>GNU</> <application>make</> is required; other
68       <application>make</> programs will <emphasis>not</> work.
69       <acronym>GNU</> <application>make</> is often installed under
70       the name <filename>gmake</filename>; this document will always
71       refer to it by that name. (On some systems
72       <acronym>GNU</acronym> <application>make</> is the default tool with the name
73       <filename>make</>.) To test for <acronym>GNU</acronym>
74       <application>make</application> enter
75 <screen>
76 <userinput>gmake --version</userinput>
77 </screen>
78       It is recommended to use version 3.76.1 or later.
79      </para>
80     </listitem>
81
82     <listitem>
83      <para>
84       You need an <acronym>ISO</>/<acronym>ANSI</> C compiler. Recent
85       versions of <productname>GCC</> are recommendable, but
86       <productname>PostgreSQL</> is known to build with a wide variety
87       of compilers from different vendors.
88      </para>
89     </listitem>
90
91     <listitem>
92      <para>
93       <application>gzip</> is needed to unpack the distribution in the
94       first place.<![%standalone-include;[  If you are reading this, you probably already got
95       past that hurdle.]]>
96      </para>
97     </listitem>
98
99     <listitem>
100      <para>
101       <indexterm>
102        <primary>readline</primary>
103       </indexterm>
104
105       The <acronym>GNU</> <productname>Readline</> library (for
106       comfortable line editing and command history retrieval) will be
107       used by default.  If you don't want to use it then you must
108       specify the <option>--without-readline</option> option for
109       <filename>configure</>.  (On <productname>NetBSD</productname>,
110       the <filename>libedit</filename> library is
111       <productname>Readline</productname>-compatible and is used if
112       <filename>libreadline</filename> is not found.)
113      </para>
114     </listitem>
115
116     <listitem>
117      <para>
118       <indexterm>
119        <primary>installation</primary>
120        <secondary>on Windows</secondary>
121       </indexterm>
122
123       To build on <productname>Windows NT</> or <productname>Windows
124       2000</> you need the <productname>Cygwin</> and
125       <productname>cygipc</> packages. See the file
126       <filename>doc/FAQ_MSWIN</> for details.
127      </para>
128     </listitem>
129    </itemizedlist>
130   </para>
131
132   <para>
133    The following packages are optional.  They are not required in the
134    default configuration, but they are needed when certain build
135    options are enabled, as explained below.
136
137    <itemizedlist>
138     <listitem>
139      <para>
140       To build the server programming language
141       <application>PL/Perl</application> you need a full
142       <productname>Perl</productname> installation, including the
143       <filename>libperl</filename> library and the header files.
144       Since <application>PL/Perl</application> will be a shared
145       library, the <indexterm><primary>libperl</primary></indexterm>
146       <filename>libperl</filename> library must be a shared library
147       also on most platforms.  This appears to be the default in
148       recent <productname>Perl</productname> versions, but it was not
149       in earlier versions, and in general it is the choice of whomever
150       installed Perl at your site.
151      </para>
152
153      <para>
154       If you don't have the shared library but you need one, a message
155       like this will appear during the build to point out this fact:
156 <screen>
157 *** Cannot build PL/Perl because libperl is not a shared library.
158 *** You might have to rebuild your Perl installation.  Refer to
159 *** the documentation for details.
160 </screen>
161       (If you don't follow the on-screen output you will merely notice
162       that the <application>PL/Perl</application> library object,
163       <filename>plperl.so</filename> or similar, will not be
164       installed.)  If you see this, you will have to rebuild and
165       install <productname>Perl</productname> manually to be able to
166       build <application>PL/Perl</application>.  During the
167       configuration process for <productname>Perl</productname>,
168       request a shared library.
169      </para>
170     </listitem>
171
172     <listitem>
173      <para>
174       To build the <application>PL/Python</> server programming
175       language, you need a <productname>Python</productname>
176       installation with the header files and the <application>distutils</application> module.
177       The <application>distutils</application> module is included by default with
178       <productname>Python</productname> 1.6 and later; users of
179       earlier versions of <productname>Python</productname> will need
180       to install it.
181      </para>
182
183      <para>
184       Since <application>PL/Python</application> will be a shared
185       library, the <indexterm><primary>libpython</primary></indexterm>
186       <filename>libpython</filename> library must be a shared library
187       also on most platforms.  This is not the case in a default
188       <productname>Python</productname> installation.  If after
189       building and installing you have a file called
190       <filename>plpython.so</filename> (possibly a different
191       extension), then everything went well.  Otherwise you should
192       have seen a notice like this flying by:
193 <screen>
194 *** Cannot build PL/Python because libpython is not a shared library.
195 *** You might have to rebuild your Python installation.  Refer to
196 *** the documentation for details.
197 </screen>
198       That means you have to rebuild (part of) your
199       <productname>Python</productname> installation to supply this
200       shared library.
201      </para>
202
203      <para>
204       If you have problems, run <productname>Python</> 2.3 or later's
205       configure using the <literal>--enable-shared</> flag.  On some
206       operating systems you don't have to build a shared library, but
207       you will have to convince the <productname>PostgreSQL</> build
208       system of this.  Consult the <filename>Makefile</filename> in
209       the <filename>src/pl/plpython</filename> directory for details.
210      </para>
211     </listitem>
212
213     <listitem>
214      <para>
215       If you want to build the <application>PL/Tcl</application>
216       procedural language, you of course need a Tcl installation.
217      </para>
218     </listitem>
219
220     <listitem>
221      <para>
222       To enable Native Language Support (<acronym>NLS</acronym>), that
223       is, the ability to display a program's messages in a language
224       other than English, you need an implementation of the
225       <application>Gettext</> <acronym>API</acronym>.  Some operating
226       systems have this built-in (e.g., <systemitem
227       class="osname">Linux</>, <systemitem class="osname">NetBSD</>,
228       <systemitem class="osname">Solaris</>), for other systems you
229       can download an add-on package from here: <ulink
230       url="http://developer.postgresql.org/~petere/bsd-gettext/" ></ulink>.
231       If you are using the <application>Gettext</> implementation in
232       the <acronym>GNU</acronym> C library then you will additionally
233       need the <productname>GNU Gettext</productname> package for some
234       utility programs.  For any of the other implementations you will
235       not need it.
236      </para>
237     </listitem>
238
239     <listitem>
240      <para>
241       <application>Kerberos</>, <productname>OpenSSL</>, or <application>PAM</>,
242       if you want to support authentication using these services.
243      </para>
244     </listitem>
245    </itemizedlist>
246   </para>
247
248   <para>
249    If you are building from a <acronym>CVS</acronym> tree instead of
250    using a released source package, or if you want to do development,
251    you also need the following packages:
252
253    <itemizedlist>
254     <listitem>
255      <para>
256       <indexterm>
257        <primary>flex</primary>
258       </indexterm>
259       <indexterm>
260        <primary>bison</primary>
261       </indexterm>
262       <indexterm>
263        <primary>yacc</primary>
264       </indexterm>
265
266       <application>Flex</> and <application>Bison</>
267       are needed to build a CVS checkout or if you changed the actual
268       scanner and parser definition files. If you need them, be sure
269       to get <application>Flex</> 2.5.4 or later and
270       <application>Bison</> 1.875 or later. Other <application>yacc</>
271       programs can sometimes be used, but doing so requires extra
272       effort and is not recommended. Other <application>lex</>
273       programs will definitely not work.
274      </para>
275     </listitem>
276    </itemizedlist>
277   </para>
278
279   <para>
280    If you need to get a <acronym>GNU</acronym> package, you can find
281    it at your local <acronym>GNU</acronym> mirror site (see <ulink
282    url="http://www.gnu.org/order/ftp.html"></>
283    for a list) or at <ulink
284    url="ftp://ftp.gnu.org/gnu/"></ulink>.
285   </para>
286
287   <para>
288    Also check that you have sufficient disk space. You will need about
289    65 MB for the source tree during compilation and about 15 MB for
290    the installation directory. An empty database cluster takes about
291    25 MB, databases take about five times the amount of space that a
292    flat text file with the same data would take. If you are going to
293    run the regression tests you will temporarily need up to an extra
294    90 MB. Use the <command>df</command> command to check for disk
295    space.
296   </para>
297  </sect1>
298
299 <![%standalone-ignore;[
300  <sect1 id="install-getsource">
301   <title>Getting The Source</title>
302
303   <para>
304    The <productname>PostgreSQL</> &version; sources can be obtained by
305    anonymous FTP from <ulink
306    url="ftp://ftp.postgresql.org/pub/source/v&version;/postgresql-&version;.tar.gz"></ulink>.
307    Use a mirror if possible. After you have obtained the file, unpack it:
308 <screen>
309 <userinput>gunzip postgresql-&version;.tar.gz</userinput>
310 <userinput>tar xf postgresql-&version;.tar</userinput>
311 </screen>
312    This will create a directory
313    <filename>postgresql-&version;</filename> under the current directory
314    with the <productname>PostgreSQL</> sources.
315    Change into that directory for the rest
316    of the installation procedure.
317   </para>
318  </sect1>
319 ]]>
320
321  <sect1 id="install-upgrading">
322   <title>If You Are Upgrading</title>
323
324   <indexterm zone="install-upgrading">
325    <primary>upgrading</primary>
326   </indexterm>
327
328   <para>
329    The internal data storage format changes with new releases of
330    <productname>PostgreSQL</>. Therefore, if you are upgrading an
331    existing installation that does not have a version number
332    <quote>&majorversion;.x</quote>, you must back up and restore your
333    data as shown here. These instructions assume that your existing
334    installation is under the <filename>/usr/local/pgsql</> directory,
335    and that the data area is in <filename>/usr/local/pgsql/data</>.
336    Substitute your paths appropriately.
337   </para>
338
339   <procedure>
340    <step>
341     <para>
342      Make sure that your database is not updated during or after the
343      backup. This does not affect the integrity of the backup, but the
344      changed data would of course not be included. If necessary, edit
345      the permissions in the file
346      <filename>/usr/local/pgsql/data/pg_hba.conf</> (or equivalent) to
347      disallow access from everyone except you.
348     </para>
349    </step>
350
351    <step>
352     <para>
353      <indexterm>
354       <primary>pg_dumpall</primary>
355       <secondary>use during upgrade</secondary>
356      </indexterm>
357
358      To back up your database installation, type:
359 <screen>
360 <userinput>pg_dumpall &gt; <replaceable>outputfile</></userinput>
361 </screen>
362      If you need to preserve OIDs (such as when using them as
363      foreign keys), then use the <option>-o</option> option when running
364      <application>pg_dumpall</>.
365     </para>
366
367     <para>
368      <application>pg_dumpall</application> does not
369      save large objects.  Check
370      <![%standalone-include[the documentation]]>
371      <![%standalone-ignore[<xref linkend="backup-dump-caveats">]]>
372      if you need to do this.
373     </para>
374
375     <para>
376      To make the backup, you can use the <application>pg_dumpall</application>
377      command from the version you are currently running.  For best
378      results, however, try to use the <application>pg_dumpall</application>
379      command from <productname>PostgreSQL</productname> &version;,
380      since this version contains bug fixes and improvements over older
381      versions.  While this advice might seem idiosyncratic since you
382      haven't installed the new version yet, it is advisable to follow
383      it if you plan to install the new version in parallel with the
384      old version.  In that case you can complete the installation
385      normally and transfer the data later.  This will also decrease
386      the downtime.
387     </para>
388    </step>
389
390    <step>
391     <para>
392      If you are installing the new version at the same location as the
393      old one then shut down the old server, at the latest before you
394      install the new files:
395 <screen>
396 <userinput>kill -INT `cat /usr/local/pgsql/data/postmaster.pid | sed 1q`</>
397 </screen>
398      Versions prior to 7.0 do not have this
399      <filename>postmaster.pid</> file. If you are using such a version
400      you must find out the process ID of the server yourself, for
401      example by typing <userinput>ps ax | grep postmaster</>, and
402      supply it to the <command>kill</> command.
403     </para>
404
405     <para>
406      On systems that have <productname>PostgreSQL</> started at boot time, there is
407      probably a start-up file that will accomplish the same thing. For
408      example, on a <systemitem class="osname">Red Hat Linux</> system one might find that
409 <screen>
410 <userinput>/etc/rc.d/init.d/postgresql stop</userinput>
411 </screen>
412      works.  Another possibility is <userinput>pg_ctl stop</>.
413     </para>
414    </step>
415
416    <step>
417     <para>
418      If you are installing in the same place as the old version then
419      it is also a good idea to move the old installation out of the
420      way, in case you have trouble and need to revert to it.
421      Use a command like this:
422 <screen>
423 <userinput>mv /usr/local/pgsql /usr/local/pgsql.old</>
424 </screen>
425     </para>
426    </step>
427   </procedure>
428
429   <para>
430    After you have installed <productname>PostgreSQL</> &version;, create a new database
431    directory and start the new server. Remember that you must execute
432    these commands while logged in to the special database user account
433    (which you already have if you are upgrading).
434 <programlisting>
435 <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
436 <userinput>/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data</>
437 </programlisting>
438    Finally, restore your data with
439 <screen>
440 <userinput>/usr/local/pgsql/bin/psql -d template1 -f <replaceable>outputfile</></userinput>
441 </screen>
442    using the <emphasis>new</> <application>psql</>.
443   </para>
444
445   <para>
446    These topics are discussed at length in <![%standalone-include[the
447    documentation,]]> <![%standalone-ignore[<xref
448    linkend="migration">,]]> which you are encouraged to read in any
449    case.
450   </para>
451  </sect1>
452
453
454  <sect1 id="install-procedure">
455   <title>Installation Procedure</title>
456
457   <procedure>
458
459   <step id="configure">
460    <title>Configuration</>
461
462    <indexterm zone="configure">
463     <primary>configure</primary>
464    </indexterm>
465
466    <para>
467     The first step of the installation procedure is to configure the
468     source tree for your system and choose the options you would like.
469     This is done by running the <filename>configure</> script. For a
470     default installation simply enter
471 <screen>
472 <userinput>./configure</userinput>
473 </screen>
474     This script will run a number of tests to guess values for various
475     system dependent variables and detect some quirks of your
476     operating system, and finally will create several files in the
477     build tree to record what it found.  (You can also run
478     <filename>configure</filename> in a directory outside the source
479     tree if you want to keep the build directory separate.)
480    </para>
481
482    <para>
483     The default configuration will build the server and utilities, as
484     well as all client applications and interfaces that require only a
485     C compiler. All files will be installed under
486     <filename>/usr/local/pgsql</> by default.
487    </para>
488
489    <para>
490     You can customize the build and installation process by supplying one
491     or more of the following command line options to
492     <filename>configure</filename>:
493
494      <variablelist>
495       <varlistentry>
496        <term><option>--prefix=<replaceable>PREFIX</></option></term>
497        <listitem>
498         <para>
499          Install all files under the directory <replaceable>PREFIX</>
500          instead of <filename>/usr/local/pgsql</filename>. The actual
501          files will be installed into various subdirectories; no files
502          will ever be installed directly into the
503          <replaceable>PREFIX</> directory.
504         </para>
505
506         <para>
507          If you have special needs, you can also customize the
508          individual subdirectories with the following options. However,
509          if you leave these with their defaults, the installation will be
510          relocatable, meaning you can move the directory after
511          installation. (The <literal>man</> and <literal>doc</>
512          locations are not affected by this.)
513         </para>
514
515         <para>
516          For relocatable installs, you might want to use 
517          <filename>configure</filename>'s <literal>--disable-rpath</>
518          option.  Also, you will need to tell the operating system how
519          to find the shared libraries.
520         </para>
521        </listitem>
522       </varlistentry>
523
524       <varlistentry>
525        <term><option>--exec-prefix=<replaceable>EXEC-PREFIX</></option></term>
526        <listitem>
527         <para>
528          You can install architecture-dependent files under a
529          different prefix, <replaceable>EXEC-PREFIX</>, than what
530          <replaceable>PREFIX</> was set to. This can be useful to
531          share architecture-independent files between hosts. If you
532          omit this, then <replaceable>EXEC-PREFIX</> is set equal to
533          <replaceable>PREFIX</> and both architecture-dependent and
534          independent files will be installed under the same tree,
535          which is probably what you want.
536         </para>
537        </listitem>
538       </varlistentry>
539
540       <varlistentry>
541        <term><option>--bindir=<replaceable>DIRECTORY</></option></term>
542        <listitem>
543         <para>
544          Specifies the directory for executable programs. The default
545          is <filename><replaceable>EXEC-PREFIX</>/bin</>, which
546          normally means <filename>/usr/local/pgsql/bin</>.
547         </para>
548        </listitem>
549       </varlistentry>
550
551       <varlistentry>
552        <term><option>--datadir=<replaceable>DIRECTORY</></option></term>
553        <listitem>
554         <para>
555          Sets the directory for read-only data files used by the
556          installed programs. The default is
557          <filename><replaceable>PREFIX</>/share</>. Note that this has
558          nothing to do with where your database files will be placed.
559         </para>
560        </listitem>
561       </varlistentry>
562
563       <varlistentry>
564        <term><option>--sysconfdir=<replaceable>DIRECTORY</></option></term>
565        <listitem>
566         <para>
567          The directory for various configuration files,
568          <filename><replaceable>PREFIX</>/etc</> by default.
569         </para>
570        </listitem>
571       </varlistentry>
572
573       <varlistentry>
574        <term><option>--libdir=<replaceable>DIRECTORY</></option></term>
575        <listitem>
576         <para>
577          The location to install libraries and dynamically loadable
578          modules. The default is
579          <filename><replaceable>EXEC-PREFIX</>/lib</>.
580         </para>
581        </listitem>
582       </varlistentry>
583
584       <varlistentry>
585        <term><option>--includedir=<replaceable>DIRECTORY</></option></term>
586        <listitem>
587         <para>
588          The directory for installing C and C++ header files. The
589          default is <filename><replaceable>PREFIX</>/include</>.
590         </para>
591        </listitem>
592       </varlistentry>
593
594       <varlistentry>
595        <term><option>--mandir=<replaceable>DIRECTORY</></option></term>
596        <listitem>
597         <para>
598          The man pages that come with <productname>PostgreSQL</> will be installed under
599          this directory, in their respective
600          <filename>man<replaceable>x</></> subdirectories.
601          The default is <filename><replaceable>PREFIX</>/man</>.
602         </para>
603        </listitem>
604       </varlistentry>
605
606       <varlistentry>
607        <term><option>--with-docdir=<replaceable>DIRECTORY</></option></term>
608        <term><option>--without-docdir</option></term>
609        <listitem>
610         <para>
611          Documentation files, except <quote>man</> pages, will be
612          installed into this directory. The default is
613          <filename><replaceable>PREFIX</>/doc</>.  If the option
614          <option>--without-docdir</option> is specified, the
615          documentation will not be installed by <command>make
616          install</command>.  This is intended for packaging scripts
617          that have special methods for installing documentation.
618         </para>
619        </listitem>
620       </varlistentry>
621      </variablelist>
622
623      <note>
624       <para>
625        Care has been taken to make it possible to install
626        <productname>PostgreSQL</> into shared installation locations
627        (such as <filename>/usr/local/include</filename>) without
628        interfering with the namespace of the rest of the system. First,
629        the string <quote><literal>/postgresql</literal></quote> is
630        automatically appended to <varname>datadir</varname>,
631        <varname>sysconfdir</varname>, and <varname>docdir</varname>,
632        unless the fully expanded directory name already contains the
633        string <quote><literal>postgres</></quote> or
634        <quote><literal>pgsql</></quote>. For example, if you choose
635        <filename>/usr/local</filename> as prefix, the documentation will
636        be installed in <filename>/usr/local/doc/postgresql</filename>,
637        but if the prefix is <filename>/opt/postgres</filename>, then it
638        will be in <filename>/opt/postgres/doc</filename>. The public C
639        header files of the client interfaces are installed into
640        <varname>includedir</varname> and are namespace-clean. The
641        internal header files and the server header files are installed
642        into private directories under <varname>includedir</varname>. See
643        the documentation of each interface for information about how to
644        get at the its header files. Finally, a private subdirectory will
645        also be created, if appropriate, under <varname>libdir</varname>
646        for dynamically loadable modules.
647       </para>
648      </note>
649     </para>
650
651     <para>
652      <variablelist>
653       <varlistentry>
654        <term><option>--with-includes=<replaceable>DIRECTORIES</></option></term>
655        <listitem>
656         <para>
657          <replaceable>DIRECTORIES</> is a colon-separated list of
658          directories that will be added to the list the compiler
659          searches for header files. If you have optional packages
660          (such as GNU <application>Readline</>) installed in a non-standard
661          location,
662          you have to use this option and probably also the corresponding
663          <option>--with-libraries</> option.
664         </para>
665         <para>
666          Example: <literal>--with-includes=/opt/gnu/include:/usr/sup/include</>.
667         </para>
668        </listitem>
669       </varlistentry>
670
671       <varlistentry>
672        <term><option>--with-libraries=<replaceable>DIRECTORIES</></option></term>
673        <listitem>
674         <para>
675          <replaceable>DIRECTORIES</> is a colon-separated list of
676          directories to search for libraries. You will probably have
677          to use this option (and the corresponding
678          <option>--with-includes</> option) if you have packages
679          installed in non-standard locations.
680         </para>
681         <para>
682          Example: <literal>--with-libraries=/opt/gnu/lib:/usr/sup/lib</>.
683         </para>
684        </listitem>
685       </varlistentry>
686
687       <varlistentry>
688        <term><option>--enable-nls<optional>=<replaceable>LANGUAGES</replaceable></optional></option></term>
689        <listitem>
690         <para>
691          Enables Native Language Support (<acronym>NLS</acronym>),
692          that is, the ability to display a program's messages in a
693          language other than English.
694          <replaceable>LANGUAGES</replaceable> is a space separated
695          list of codes of the languages that you want supported, for
696          example <literal>--enable-nls='de fr'</>.  (The intersection
697          between your list and the set of actually provided
698          translations will be computed automatically.)  If you do not
699          specify a list, then all available translations are
700          installed.
701         </para>
702
703         <para>
704          To use this option, you will need an implementation of the
705          <application>Gettext</> API; see above.
706         </para>
707        </listitem>
708       </varlistentry>
709
710       <varlistentry>
711        <term><option>--with-pgport=<replaceable>NUMBER</></option></term>
712        <listitem>
713         <para>
714          Set <replaceable>NUMBER</> as the default port number for
715          server and clients. The default is 5432. The port can always
716          be changed later on, but if you specify it here then both
717          server and clients will have the same default compiled in,
718          which can be very convenient.  Usually the only good reason
719          to select a non-default value is if you intend to run multiple
720          <productname>PostgreSQL</> servers on the same machine.
721         </para>
722        </listitem>
723       </varlistentry>
724
725       <varlistentry>
726        <term><option>--with-perl</option></term>
727        <listitem>
728         <para>
729          Build the <application>PL/Perl</> server-side language.
730         </para>
731        </listitem>
732       </varlistentry>
733
734       <varlistentry>
735        <term><option>--with-python</option></term>
736        <listitem>
737         <para>
738          Build the <application>PL/Python</> server-side language.
739         </para>
740        </listitem>
741       </varlistentry>
742
743       <varlistentry>
744        <term><option>--with-tcl</option></term>
745        <listitem>
746         <para>
747          Build the <application>PL/Tcl</> server-side language.
748         </para>
749        </listitem>
750       </varlistentry>
751
752       <varlistentry>
753        <term><option>--with-tclconfig=<replaceable>DIRECTORY</replaceable></option></term>
754        <listitem>
755         <para>
756          Tcl installs the file <filename>tclConfig.sh</filename>, which
757          contains configuration information needed to build modules
758          interfacing to Tcl. This file is normally found automatically
759          at a well-known location, but if you want to use a different
760          version of Tcl you can specify the directory in which to look
761          for it.
762         </para>
763        </listitem>
764       </varlistentry>
765
766       <varlistentry>
767        <term><option>--with-krb4</option></term>
768        <term><option>--with-krb5</option></term>
769        <listitem>
770         <para>
771          Build with support for Kerberos authentication. You can use
772          either Kerberos version 4 or 5, but not both.  On many
773          systems, the Kerberos system is not installed in a location
774          that is searched by default (e.g., <filename>/usr/include</>,
775          <filename>/usr/lib</>), so you must use the options
776          <option>--with-includes</> and <option>--with-libraries</> in
777          addition to this option.  <filename>configure</> will check
778          for the required header files and libraries to make sure that
779          your Kerberos installation is sufficient before proceeding.
780         </para>
781        </listitem>
782       </varlistentry>
783
784       <varlistentry>
785        <term><option>--with-krb-srvnam=<replaceable>NAME</></option></term>
786        <listitem>
787         <para>
788          The name of the Kerberos service principal.
789          <literal>postgres</literal> is the default. There's probably no
790          reason to change this.
791         </para>
792        </listitem>
793       </varlistentry>
794
795       <varlistentry>
796        <indexterm>
797         <primary>OpenSSL</primary>
798         <seealso>SSL</seealso>
799        </indexterm>
800
801        <term><option>--with-openssl</option></term>
802        <listitem>
803         <para>
804          Build with support for <acronym>SSL</> (encrypted)
805          connections. This requires the <productname>OpenSSL</>
806          package to be installed.  <filename>configure</> will check
807          for the required header files and libraries to make sure that
808          your <productname>OpenSSL</> installation is sufficient
809          before proceeding.
810         </para>
811        </listitem>
812       </varlistentry>
813
814       <varlistentry>
815        <term><option>--with-pam</option></term>
816        <listitem>
817         <para>
818          Build with <acronym>PAM</><indexterm><primary>PAM</></>
819          (Pluggable Authentication Modules) support.
820         </para>
821        </listitem>
822       </varlistentry>
823
824       <varlistentry>
825        <term><option>--without-readline</option></term>
826        <listitem>
827         <para>
828          Prevents the use of the <application>Readline</> library.  This disables
829          command-line editing and history in
830          <application>psql</application>, so it is not recommended.
831         </para>
832        </listitem>
833       </varlistentry>
834
835       <varlistentry>
836        <term><option>--with-rendezvous</option></term>
837        <listitem>
838         <para>
839          Build with Rendezvous support.
840         </para>
841        </listitem>
842       </varlistentry>
843
844       <varlistentry>
845        <term><option>--disable-spinlocks</option></term>
846        <listitem>
847         <para>
848          Allow the build to succeed even if <productname>PostgreSQL</>
849          has no CPU spinlock support for the platform.  The lack of
850          spinlock support will result in poor performance; therefore,
851          this option should only be used if the build aborts and
852          informs you that the platform lacks spinlock support. If this
853          option is required to build <productname>PostgreSQL</> on
854          your platform, please report the problem to the
855          <productname>PostgreSQL</> developers.
856         </para>
857        </listitem>
858       </varlistentry>
859
860       <varlistentry>
861        <term><option>--enable-thread-safety</option></term>
862        <listitem>
863         <para>
864          Make the client libraries thread-safe.  This allows
865          concurrent threads in <application>libpq</application> and
866          <application>ECPG</application> programs to safely control
867          their private connection handles.
868         </para>
869        </listitem>
870       </varlistentry>
871
872       <varlistentry>
873        <term><option>--without-zlib</option></term>
874        <listitem>
875         <para>
876          Prevents the use of the <application>Zlib</> library.  This disables
877          compression support in <application>pg_dump</application>.
878          This option is only intended for those rare systems where this
879          library is not available.
880         </para>
881        </listitem>
882       </varlistentry>
883
884       <varlistentry>
885        <term><option>--enable-debug</option></term>
886        <listitem>
887         <para>
888          Compiles all programs and libraries with debugging symbols.
889          This means that you can run the programs through a debugger
890          to analyze problems. This enlarges the size of the installed
891          executables considerably, and on non-GCC compilers it usually
892          also disables compiler optimization, causing slowdowns. However,
893          having the symbols available is extremely helpful for dealing
894          with any problems that may arise.  Currently, this option is
895          recommended for production installations only if you use GCC.
896          But you should always have it on if you are doing development work
897          or running a beta version.
898         </para>
899        </listitem>
900       </varlistentry>
901
902       <varlistentry>
903        <term><option>--enable-cassert</option></term>
904        <listitem>
905         <para>
906          Enables <firstterm>assertion</> checks in the server, which test for
907          many <quote>can't happen</> conditions.  This is invaluable for
908          code development purposes, but the tests slow things down a little.
909          Also, having the tests turned on won't necessarily enhance the
910          stability of your server!  The assertion checks are not categorized
911          for severity, and so what might be a relatively harmless bug will
912          still lead to server restarts if it triggers an assertion
913          failure.  Currently, this option is not recommended for
914          production use, but you should have it on for development work
915          or when running a beta version.
916         </para>
917        </listitem>
918       </varlistentry>
919
920       <varlistentry>
921        <term><option>--enable-depend</option></term>
922        <listitem>
923         <para>
924          Enables automatic dependency tracking.  With this option, the
925          makefiles are set up so that all affected object files will
926          be rebuilt when any header file is changed.  This is useful
927          if you are doing development work, but is just wasted overhead
928          if you intend only to compile once and install.  At present,
929          this option will work only if you use GCC.
930         </para>
931        </listitem>
932       </varlistentry>
933
934      </variablelist>
935     </para>
936
937     <para>
938      If you prefer a C compiler different from the one
939      <filename>configure</filename> picks then you can set the
940      environment variable <envar>CC</> to the program of your choice.
941      By default, <filename>configure</filename> will pick
942      <filename>gcc</filename> unless this is inappropriate for the
943      platform.  Similarly, you can override the default compiler flags
944      with the <envar>CFLAGS</envar> variable.
945     </para>
946
947     <para>
948      You can specify environment variables on the
949      <filename>configure</filename> command line, for example:
950 <screen>
951 <userinput>./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'</>
952 </screen>
953     </para>
954    </step>
955
956   <step>
957    <title>Build</title>
958
959    <para>
960     To start the build, type
961 <screen>
962 <userinput>gmake</userinput>
963 </screen>
964     (Remember to use <acronym>GNU</> <application>make</>.) The build
965     may take anywhere from 5 minutes to half an hour depending on your
966     hardware. The last line displayed should be
967 <screen>
968 All of PostgreSQL is successfully made. Ready to install.
969 </screen>
970    </para>
971   </step>
972
973   <step>
974    <title>Regression Tests</title>
975
976    <indexterm>
977     <primary>regression test</primary>
978    </indexterm>
979
980    <para>
981     If you want to test the newly built server before you install it,
982     you can run the regression tests at this point. The regression
983     tests are a test suite to verify that <productname>PostgreSQL</>
984     runs on your machine in the way the developers expected it
985     to. Type
986 <screen>
987 <userinput>gmake check</userinput>
988 </screen>
989     (This won't work as root; do it as an unprivileged user.)
990     <![%standalone-include[The file
991     <filename>src/test/regress/README</> and the
992     documentation contain]]>
993     <![%standalone-ignore[<xref linkend="regress"> contains]]>
994     detailed information about interpreting the test results. You can
995     repeat this test at any later time by issuing the same command.
996    </para>
997   </step>
998
999   <step id="install">
1000    <title>Installing The Files</title>
1001
1002    <note>
1003     <para>
1004      If you are upgrading an existing system and are going to install
1005      the new files over the old ones, then you should have backed up
1006      your data and shut down the old server by now, as explained in
1007      <xref linkend="install-upgrading"> above.
1008     </para>
1009    </note>
1010
1011    <para>
1012     To install <productname>PostgreSQL</> enter
1013 <screen>
1014 <userinput>gmake install</userinput>
1015 </screen>
1016     This will install files into the directories that were specified
1017     in <xref linkend="configure">. Make sure that you have appropriate
1018     permissions to write into that area. Normally you need to do this
1019     step as root. Alternatively, you could create the target
1020     directories in advance and arrange for appropriate permissions to
1021     be granted.
1022    </para>
1023
1024    <para>
1025     You can use <literal>gmake install-strip</literal> instead of
1026     <literal>gmake install</literal> to strip the executable files and
1027     libraries as they are installed.  This will save some space.  If
1028     you built with debugging support, stripping will effectively
1029     remove the debugging support, so it should only be done if
1030     debugging is no longer needed.  <literal>install-strip</literal>
1031     tries to do a reasonable job saving space, but it does not have
1032     perfect knowledge of how to strip every unneeded byte from an
1033     executable file, so if you want to save all the disk space you
1034     possibly can, you will have to do manual work.
1035    </para>
1036
1037    <para>
1038     The standard installation provides all the header files needed for client
1039     application development as well as for any server-side program
1040     development (such as custom functions or data types written in C).
1041    </para>
1042
1043    <formalpara>
1044     <title>Client-only installation:</title>
1045     <para>
1046      If you want to install only the client applications and
1047      interface libraries, then you can use these commands:
1048 <screen>
1049 <userinput>gmake -C src/bin install</>
1050 <userinput>gmake -C src/include install</>
1051 <userinput>gmake -C src/interfaces install</>
1052 <userinput>gmake -C doc install</>
1053 </screen>
1054     </para>
1055    </formalpara>
1056   </step>
1057   </procedure>
1058
1059   <formalpara>
1060    <title>Registering <application>eventlog</> on <systemitem 
1061    class="osname">Windows</>:</title>
1062    <para>
1063     To register a <systemitem class="osname">Windows</> <application>eventlog</>
1064     library with the operating system, issue this command after installation:
1065 <screen>
1066 <userinput>regsvr32 <replaceable>pgsql_library_directory</>/pgevent.dll</>
1067 </screen>
1068     This creates registry entries used by the event viewer.
1069    </para>
1070   </formalpara>
1071
1072   <formalpara>
1073    <title>Uninstallation:</title>
1074    <para>
1075     To undo the installation use the command <command>gmake
1076     uninstall</>. However, this will not remove any created directories.
1077    </para>
1078   </formalpara>
1079
1080   <formalpara>
1081    <title>Cleaning:</title>
1082
1083    <para>
1084     After the installation you can make room by removing the built
1085     files from the source tree with the command <command>gmake
1086     clean</>. This will preserve the files made by the <command>configure</command>
1087     program, so that you can rebuild everything with <command>gmake</>
1088     later on. To reset the source tree to the state in which it was
1089     distributed, use <command>gmake distclean</>. If you are going to
1090     build for several platforms from the same source tree you must do
1091     this and re-configure for each build.
1092    </para>
1093   </formalpara>
1094
1095   <para>
1096    If you perform a build and then discover that your <command>configure</>
1097    options were wrong, or if you change anything that <command>configure</>
1098    investigates (for example, software upgrades), then it's a good
1099    idea to do <command>gmake distclean</> before reconfiguring and
1100    rebuilding.  Without this, your changes in configuration choices
1101    may not propagate everywhere they need to.
1102   </para>
1103  </sect1>
1104
1105  <sect1 id="install-post">
1106   <title>Post-Installation Setup</title>
1107
1108   <sect2>
1109    <title>Shared Libraries</title>
1110
1111    <indexterm>
1112     <primary>shared library</primary>
1113    </indexterm>
1114
1115    <para>
1116     On some systems that have shared libraries (which most systems do)
1117     you need to tell your system how to find the newly installed
1118     shared libraries.  The systems on which this is
1119     <emphasis>not</emphasis> necessary include <systemitem
1120     class="osname">BSD/OS</>, <systemitem class="osname">FreeBSD</>,
1121     <systemitem class="osname">HP-UX</>, <systemitem
1122     class="osname">IRIX</>, <systemitem class="osname">Linux</>,
1123     <systemitem class="osname">NetBSD</>, <systemitem
1124     class="osname">OpenBSD</>, <systemitem class="osname">Tru64
1125     UNIX</> (formerly <systemitem class="osname">Digital UNIX</>), and
1126     <systemitem class="osname">Solaris</>.
1127    </para>
1128
1129    <para>
1130     The method to set the shared library search path varies between
1131     platforms, but the most widely usable method is to set the
1132     environment variable <envar>LD_LIBRARY_PATH</> like so: In Bourne
1133     shells (<command>sh</>, <command>ksh</>, <command>bash</>, <command>zsh</>)
1134 <programlisting>
1135 LD_LIBRARY_PATH=/usr/local/pgsql/lib
1136 export LD_LIBRARY_PATH
1137 </programlisting>
1138     or in <command>csh</> or <command>tcsh</>
1139 <programlisting>
1140 setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
1141 </programlisting>
1142     Replace <literal>/usr/local/pgsql/lib</> with whatever you set
1143     <option><literal>--libdir</></> to in <xref linkend="configure">.
1144     You should put these commands into a shell start-up file such as
1145     <filename>/etc/profile</> or <filename>~/.bash_profile</>.  Some
1146     good information about the caveats associated with this method can
1147     be found at <ulink
1148     url="http://www.visi.com/~barr/ldpath.html"></ulink>.
1149    </para>
1150
1151    <para>
1152     On some systems it might be preferable to set the environment
1153     variable <envar>LD_RUN_PATH</envar> <emphasis>before</emphasis>
1154     building.
1155    </para>
1156
1157    <para>
1158     On <systemitem class="osname">Cygwin</systemitem>, put the library
1159     directory in the <envar>PATH</envar> or move the
1160     <filename>.dll</filename> files into the <filename>bin</filename>
1161     directory.
1162    </para>
1163
1164    <para>
1165     If in doubt, refer to the manual pages of your system (perhaps
1166     <command>ld.so</command> or <command>rld</command>). If you later
1167     on get a message like
1168 <screen>
1169 psql: error in loading shared libraries
1170 libpq.so.2.1: cannot open shared object file: No such file or directory
1171 </screen>
1172     then this step was necessary.  Simply take care of it then.
1173    </para>
1174
1175    <para>
1176     <indexterm>
1177      <primary>ldconfig</primary>
1178     </indexterm>
1179     If you are on <systemitem class="osname">BSD/OS</>, <systemitem
1180     class="osname">Linux</>, or <systemitem class="osname">SunOS 4</>
1181     and you have root access you can run
1182 <programlisting>
1183 /sbin/ldconfig /usr/local/pgsql/lib
1184 </programlisting>
1185     (or equivalent directory) after installation to enable the
1186     run-time linker to find the shared libraries faster.  Refer to the
1187     manual page of <command>ldconfig</> for more information.  On
1188     <systemitem class="osname">FreeBSD</>, <systemitem
1189     class="osname">NetBSD</>, and <systemitem
1190     class="osname">OpenBSD</> the command is
1191 <programlisting>
1192 /sbin/ldconfig -m /usr/local/pgsql/lib
1193 </programlisting>
1194     instead.  Other systems are not known to have an equivalent
1195     command.
1196    </para>
1197   </sect2>
1198
1199   <sect2>
1200    <title>Environment Variables</title>
1201
1202    <indexterm>
1203     <primary><envar>PATH</envar></primary>
1204    </indexterm>
1205
1206    <para>
1207     If you installed into <filename>/usr/local/pgsql</> or some other
1208     location that is not searched for programs by default, you should
1209     add <filename>/usr/local/pgsql/bin</> (or whatever you set
1210     <option><literal>--bindir</></> to in <xref linkend="configure">)
1211     into your <envar>PATH</>.  Strictly speaking, this is not
1212     necessary, but it will make the use of <productname>PostgreSQL</>
1213     much more convenient.
1214    </para>
1215
1216    <para>
1217     To do this, add the following to your shell start-up file, such as
1218     <filename>~/.bash_profile</> (or <filename>/etc/profile</>, if you
1219     want it to affect every user):
1220 <programlisting>
1221 PATH=/usr/local/pgsql/bin:$PATH
1222 export PATH
1223 </programlisting>
1224     If you are using <command>csh</> or <command>tcsh</>, then use this command:
1225 <programlisting>
1226 set path = ( /usr/local/pgsql/bin $path )
1227 </programlisting>
1228    </para>
1229
1230    <para>
1231     <indexterm>
1232      <primary><envar>MANPATH</envar></primary>
1233     </indexterm>
1234     To enable your system to find the <application>man</>
1235     documentation, you need to add lines like the following to a
1236     shell start-up file unless you installed into a location that is
1237     searched by default.
1238 <programlisting>
1239 MANPATH=/usr/local/pgsql/man:$MANPATH
1240 export MANPATH
1241 </programlisting>
1242    </para>
1243
1244    <para>
1245     The environment variables <envar>PGHOST</> and <envar>PGPORT</>
1246     specify to client applications the host and port of the database
1247     server, overriding the compiled-in defaults. If you are going to
1248     run client applications remotely then it is convenient if every
1249     user that plans to use the database sets <envar>PGHOST</>.  This
1250     is not required, however: the settings can be communicated via command
1251     line options to most client programs.
1252    </para>
1253   </sect2>
1254  </sect1>
1255
1256
1257 <![%standalone-include;[
1258  <sect1 id="install-getting-started">
1259   <title>Getting Started</title>
1260
1261   <para>
1262    The following is a quick summary of how to get <productname>PostgreSQL</> up and
1263    running once installed. The main documentation contains more information.
1264   </para>
1265
1266   <procedure>
1267    <step>
1268     <para>
1269      Create a user account for the <productname>PostgreSQL</>
1270      server. This is the user the server will run as. For production
1271      use you should create a separate, unprivileged account
1272      (<quote>postgres</> is commonly used). If you do not have root
1273      access or just want to play around, your own user account is
1274      enough, but running the server as root is a security risk and
1275      will not work.
1276 <screen>
1277 <userinput>adduser postgres</>
1278 </screen>
1279     </para>
1280    </step>
1281
1282    <step>
1283     <para>
1284      Create a database installation with the <command>initdb</>
1285      command. To run <command>initdb</> you must be logged in to your
1286      <productname>PostgreSQL</> server account. It will not work as
1287      root.
1288 <screen>
1289 root# <userinput>mkdir /usr/local/pgsql/data</>
1290 root# <userinput>chown postgres /usr/local/pgsql/data</>
1291 root# <userinput>su - postgres</>
1292 postgres$ <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
1293 </screen>
1294     </para>
1295
1296     <para>
1297      The <option>-D</> option specifies the location where the data
1298      will be stored. You can use any path you want, it does not have
1299      to be under the installation directory. Just make sure that the
1300      server account can write to the directory (or create it, if it
1301      doesn't already exist) before starting <command>initdb</>, as
1302      illustrated here.
1303     </para>
1304    </step>
1305
1306    <step>
1307     <para>
1308      The previous step should have told you how to start up the
1309      database server. Do so now. The command should look something
1310      like
1311 <programlisting>
1312 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
1313 </programlisting>
1314      This will start the server in the foreground. To put the server
1315      in the background use something like
1316 <programlisting>
1317 nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \
1318     &lt;/dev/null &gt;&gt;server.log 2&gt;&amp;1 &lt;/dev/null &amp;
1319 </programlisting>
1320     </para>
1321
1322     <para>
1323      To stop a server running in the background you can type
1324 <programlisting>
1325 kill `cat /usr/local/pgsql/data/postmaster.pid`
1326 </programlisting>
1327     </para>
1328
1329     <para>
1330      In order to allow TCP/IP connections (rather than only Unix
1331      domain socket ones) you need to pass the <option>-i</> option to
1332      <filename>postmaster</>.
1333     </para>
1334    </step>
1335
1336    <step>
1337     <para>
1338      Create a database:
1339 <screen>
1340 <userinput>createdb testdb</>
1341 </screen>
1342      Then enter
1343 <screen>
1344 <userinput>psql testdb</>
1345 </screen>
1346      to connect to that database. At the prompt you can enter SQL
1347      commands and start experimenting.
1348     </para>
1349    </step>
1350   </procedure>
1351  </sect1>
1352
1353  <sect1 id="install-whatnow">
1354   <title>What Now?</title>
1355
1356   <para>
1357    <itemizedlist>
1358     <listitem>
1359      <para>
1360       The <productname>PostgreSQL</> distribution contains a
1361       comprehensive documentation set, which you should read sometime.
1362       After installation, the documentation can be accessed by
1363       pointing your browser to
1364       <filename>/usr/local/pgsql/doc/html/index.html</>, unless you
1365       changed the installation directories.
1366      </para>
1367
1368      <para>
1369       The first few chapters of the main documentation are the Tutorial,
1370       which should be your first reading if you are completely new to
1371       <acronym>SQL</> databases.  If you are familiar with database
1372       concepts then you want to proceed with part on server
1373       administration, which contains information about how to set up
1374       the database server, database users, and authentication.
1375      </para>
1376     </listitem>
1377
1378     <listitem>
1379      <para>
1380       Usually, you will want to modify your computer so that it will
1381       automatically start the database server whenever it boots. Some
1382       suggestions for this are in the documentation.
1383      </para>
1384     </listitem>
1385
1386     <listitem>
1387      <para>
1388       Run the regression tests against the installed server (using
1389       <command>gmake installcheck</command>). If you didn't run the
1390       tests before installation, you should definitely do it now. This
1391       is also explained in the documentation.
1392      </para>
1393     </listitem>
1394
1395     <listitem>
1396      <para>
1397       By default, <productname>PostgreSQL</> is configured to run on
1398       minimal hardware.  This allows it to start up with almost any
1399       hardware configuration. The default configuration is, however,
1400       not designed for optimum performance. To achieve optimum
1401       performance, several server parameters must be adjusted, the two
1402       most common being <varname>shared_buffers</varname> and
1403       <varname>work_mem</varname>.
1404       Other parameters mentioned in the documentation also affect
1405       performance.
1406      </para>
1407     </listitem>
1408    </itemizedlist>
1409   </para>
1410  </sect1>
1411 ]]>
1412
1413
1414  <sect1 id="supported-platforms">
1415   <title>Supported Platforms</title>
1416
1417   <para>
1418    <productname>PostgreSQL</> has been verified by the developer
1419    community to work on the platforms listed below. A supported
1420    platform generally means that <productname>PostgreSQL</> builds and
1421    installs according to these instructions and that the regression
1422    tests pass.  <quote>Build farm</quote> entries refer to builds
1423    reported by the <ulink url="http://www.pgbuildfarm.org/">PostgreSQL
1424    Build Farm</ulink>.
1425   </para>
1426
1427   <note>
1428    <para>
1429     If you are having problems with the installation on a supported
1430     platform, please write to <email>pgsql-bugs@postgresql.org</email>
1431     or <email>pgsql-ports@postgresql.org</email>, not to the people
1432     listed here.
1433    </para>
1434   </note>
1435
1436     <informaltable>
1437      <tgroup cols="5">
1438       <thead>
1439        <row>
1440         <entry><acronym>OS</acronym></entry>
1441         <entry>Processor</entry>
1442         <entry>Version</entry>
1443         <entry>Reported</entry>
1444         <entry>Remarks</entry>
1445        </row>
1446       </thead>
1447       <tbody>
1448        <row>
1449         <entry><systemitem class="osname">AIX</></entry>
1450         <entry><systemitem>PowerPC</></entry>
1451         <entry>8.0.0</entry>
1452         <entry>Travis P (<email>twp@castle.fastmail.fm</email>), 2004-12-12</entry>
1453         <entry>see also <filename>doc/FAQ_AIX</filename></entry>
1454        </row>
1455        <row>
1456         <entry><systemitem class="osname">AIX</></entry>
1457         <entry><systemitem>RS6000</></entry>
1458         <entry>8.0.0</entry>
1459         <entry>Hans-J&uuml;rgen Sch&ouml;nig (<email>hs@cybertec.at</email>), 2004-12-06</entry>
1460         <entry>see also <filename>doc/FAQ_AIX</filename></entry>
1461        </row>
1462        <row>
1463         <entry><systemitem class="osname">BSD/OS</></entry>
1464         <entry><systemitem>x86</></entry>
1465         <entry>8.0.0</entry>
1466         <entry>Bruce Momjian (<email>pgman@candle.pha.pa.us</email>), 2004-12-07</entry>
1467         <entry>4.3.1</entry>
1468        </row>
1469        <row>
1470         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1471         <entry><systemitem>Alpha</></entry>
1472         <entry>7.4</entry>
1473         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2003-10-25</entry>
1474         <entry></entry>
1475        </row>
1476        <row>
1477         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1478         <entry><systemitem>AMD64</></entry>
1479         <entry>8.0.0</entry>
1480         <entry>Build farm <systemitem class="systemname">panda</systemitem>, snapshot 2004-12-06 01:20:02</entry>
1481         <entry>sid, kernel 2.6</entry>
1482        </row>
1483        <row>
1484         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1485         <entry><systemitem>arm41</></entry>
1486         <entry>7.4</entry>
1487         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2003-10-25</entry>
1488         <entry></entry>
1489        </row>
1490        <row>
1491         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1492         <entry><systemitem>Itanium</></entry>
1493         <entry>7.4</entry>
1494         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2003-10-25</entry>
1495         <entry></entry>
1496        </row>
1497        <row>
1498         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1499         <entry><systemitem>m68k</></entry>
1500         <entry>8.0.0</entry>
1501         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2004-12-09</entry>
1502         <entry>sid</entry>
1503        </row>
1504        <row>
1505         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1506         <entry><systemitem>MIPS</></entry>
1507         <entry>8.0.0</entry>
1508         <entry>Build farm <systemitem class="systemname">lionfish</systemitem>, snapshot 2004-12-06 11:00:08</entry>
1509         <entry>3.1 (sarge), kernel 2.4</entry>
1510        </row>
1511        <row>
1512         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1513         <entry><systemitem>PA-RISC</></entry>
1514         <entry>8.0.0</entry>
1515         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2004-12-07</entry>
1516         <entry></entry>
1517      </row>
1518        <row>
1519         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1520         <entry><systemitem>PowerPC</></entry>
1521         <entry>8.0.0</entry>
1522         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2004-12-15</entry>
1523         <entry></entry>
1524        </row>
1525        <row>
1526         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1527         <entry><systemitem>S/390</></entry>
1528         <entry>7.4</entry>
1529         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2003-10-25</entry>
1530         <entry></entry>
1531        </row>
1532        <row>
1533         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1534         <entry><systemitem>Sparc</></entry>
1535         <entry>8.0.0</entry>
1536         <entry>No&egrave;l K&ouml;the (<email>noel@debian.org</email>), 2004-12-09</entry>
1537         <entry>sid, 32-bit</entry>
1538        </row>
1539        <row>
1540         <entry><systemitem class="osname">Debian GNU/Linux</></entry>
1541         <entry><systemitem>x86</></entry>
1542         <entry>8.0.0</entry>
1543         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2004-12-06</entry>
1544         <entry>3.1 (sarge), kernel 2.6</entry>
1545        </row>
1546        <row>
1547         <entry><systemitem class="osname">Fedora</></entry>
1548         <entry><systemitem>AMD64</></entry>
1549         <entry>8.0.0</entry>
1550         <entry>John Gray (<email>jgray@azuli.co.uk</email>), 2004-12-12</entry>
1551         <entry>FC3</entry>
1552        </row>
1553        <row>
1554         <entry><systemitem class="osname">Fedora</></entry>
1555         <entry><systemitem>x86</></entry>
1556         <entry>8.0.0</entry>
1557         <entry>Build farm <systemitem class="systemname">dog</systemitem>, snapshot 2004-12-06 02:06:01</entry>
1558         <entry>FC1</entry>
1559        </row>
1560        <row>
1561         <entry><systemitem class="osname">FreeBSD</></entry>
1562         <entry><systemitem>Alpha</></entry>
1563         <entry>7.4</entry>
1564         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2003-10-25</entry>
1565         <entry>4.8</entry>
1566        </row>
1567        <row>
1568         <entry><systemitem class="osname">FreeBSD</></entry>
1569         <entry><systemitem>x86</></entry>
1570         <entry>8.0.0</entry>
1571         <entry>Build farm <systemitem class="systemname">cockatoo</systemitem>, snapshot 2004-12-06 14:10:01 (4.10);
1572          Marc Fournier (<email>scrappy@postgresql.org</email>), 2004-12-07 (5.3)</entry>
1573         <entry></entry>
1574        </row>
1575        <row>
1576         <entry><systemitem class="osname">Gentoo Linux</></entry>
1577         <entry><systemitem>x86</></entry>
1578         <entry>8.0.0</entry>
1579         <entry>Paul Bort (<email>pbort@tmwsystems.com</email>), 2004-12-07</entry>
1580         <entry></entry>
1581        </row>
1582        <row>
1583         <entry><systemitem class="osname">HP-UX</></entry>
1584         <entry><systemitem>PA-RISC</></entry>
1585         <entry>7.4</entry>
1586         <entry>
1587          Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2003-10-31 (10.20);
1588          Peter Eisentraut (<email>peter_e@gmx.net</email>), 2003-11-04 (11.00)
1589         </entry>
1590         <entry><command>gcc</> and <command>cc</>; see also <filename>doc/FAQ_HPUX</filename></entry>
1591        </row>
1592        <row>
1593         <entry><systemitem class="osname">IRIX</></entry>
1594         <entry><systemitem>MIPS</></entry>
1595         <entry>7.4</entry>
1596         <entry>Robert E. Bruccoleri (<email>bruc@stone.congenomics.com</email>), 2003-11-12</entry>
1597         <entry>6.5.20, <command>cc</command> only</entry>
1598        </row>
1599        <row>
1600         <entry><systemitem class="osname">Mac OS X</></entry>
1601         <entry><systemitem>PowerPC</></entry>
1602         <entry>8.0.0</entry>
1603         <entry>Andrew Rawnsley (<email>ronz@ravensfield.com</email>), 2004-12-07</entry>
1604         <entry>10.3.5</entry>
1605        </row>
1606        <row>
1607         <entry><systemitem class="osname">Mandrakelinux</></entry>
1608         <entry><systemitem>x86</></entry>
1609         <entry>8.0.0</entry>
1610         <entry>Build farm <systemitem class="systemname">shrew</systemitem>, snapshot 2004-12-06 02:02:01</entry>
1611         <entry>10.0</entry>
1612        </row>
1613        <row>
1614         <entry><systemitem class="osname">NetBSD</></entry>
1615         <entry><systemitem>arm32</></entry>
1616         <entry>7.4</entry>
1617         <entry>Patrick Welche (<email>prlw1@newn.cam.ac.uk</email>), 2003-11-12</entry>
1618         <entry>1.6ZE/acorn32</entry>
1619        </row>
1620        <row>
1621         <entry><systemitem class="osname">NetBSD</></entry>
1622         <entry><systemitem>Sparc</></entry>
1623         <entry>7.4.1</entry>
1624         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2003-11-26</entry>
1625         <entry>1.6.1, 32-bit</entry>
1626        </row>
1627        <row>
1628         <entry><systemitem class="osname">NetBSD</></entry>
1629         <entry><systemitem>x86</></entry>
1630         <entry>8.0.0</entry>
1631         <entry>Build farm <systemitem class="systemname">canary</systemitem>, snapshot 2004-12-06 03:30:00</entry>
1632         <entry>1.6</entry>
1633        </row>
1634        <row>
1635         <entry><systemitem class="osname">OpenBSD</></entry>
1636         <entry><systemitem>Sparc</></entry>
1637         <entry>7.4</entry>
1638         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2003-11-01</entry>
1639         <entry>3.4</entry>
1640        </row>
1641        <row>
1642         <entry><systemitem class="osname">OpenBSD</></entry>
1643         <entry><systemitem>x86</></entry>
1644         <entry>8.0.0</entry>
1645         <entry>Build farm <systemitem class="systemname">emu</systemitem>, snapshot 2004-12-06 11:35:03</entry>
1646         <entry>3.6</entry>
1647        </row>
1648        <row>
1649         <entry><systemitem class="osname">Red Hat Linux</></entry>
1650         <entry><systemitem>AMD64</></entry>
1651         <entry>8.0.0</entry>
1652         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1653         <entry>RHEL 3AS</entry>
1654        </row>
1655        <row>
1656         <entry><systemitem class="osname">Red Hat Linux</></entry>
1657         <entry><systemitem>IA64</></entry>
1658         <entry>8.0.0</entry>
1659         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1660         <entry>RHEL 3AS</entry>
1661        </row>
1662        <row>
1663         <entry><systemitem class="osname">Red Hat Linux</></entry>
1664         <entry><systemitem>PowerPC</></entry>
1665         <entry>8.0.0</entry>
1666         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1667         <entry>RHEL 3AS</entry>
1668        </row>
1669        <row>
1670         <entry><systemitem class="osname">Red Hat Linux</></entry>
1671         <entry><systemitem>PowerPC 64</></entry>
1672         <entry>8.0.0</entry>
1673         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1674         <entry>RHEL 3AS</entry>
1675        </row>
1676        <row>
1677         <entry><systemitem class="osname">Red Hat Linux</></entry>
1678         <entry><systemitem>S/390</></entry>
1679         <entry>8.0.0</entry>
1680         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1681         <entry>RHEL 3AS</entry>
1682        </row>
1683        <row>
1684         <entry><systemitem class="osname">Red Hat Linux</></entry>
1685         <entry><systemitem>S/390x</></entry>
1686         <entry>8.0.0</entry>
1687         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1688         <entry>RHEL 3AS</entry>
1689        </row>
1690        <row>
1691         <entry><systemitem class="osname">Red Hat Linux</></entry>
1692         <entry><systemitem>x86</></entry>
1693         <entry>8.0.0</entry>
1694         <entry>Tom Lane (<email>tgl@sss.pgh.pa.us</email>), 2004-12-07</entry>
1695         <entry>RHEL 3AS</entry>
1696        </row>
1697        <row>
1698         <entry><systemitem class="osname">Solaris</></entry>
1699         <entry><systemitem>Sparc</></entry>
1700         <entry>8.0.0</entry>
1701         <entry>Kenneth Marshall (<email>ktm@is.rice.edu</email>), 2004-12-07</entry>
1702         <entry>Solaris 8; see also <filename>doc/FAQ_Solaris</filename></entry>
1703        </row>
1704        <row>
1705         <entry><systemitem class="osname">Solaris</></entry>
1706         <entry><systemitem>x86</></entry>
1707         <entry>8.0.0</entry>
1708         <entry>Build farm <systemitem class="systemname">kudu</systemitem>, snapshot 2004-12-10 02:30:04 (<command>cc</command>);
1709           <systemitem class="systemname">dragonfly</systemitem>, snapshot 2004-12-09 04:30:00 (<command>gcc</command>)</entry>
1710         <entry>Solaris 9; see also <filename>doc/FAQ_Solaris</filename></entry>
1711        </row>
1712        <row>
1713         <entry><systemitem class="osname">Tru64 UNIX</></entry>
1714         <entry><systemitem>Alpha</></entry>
1715         <entry>7.4</entry>
1716         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2003-10-25 (5.1b);
1717          Alessio Bragadini (<email>alessio@albourne.com</email>), 2003-10-29 (4.0g)</entry>
1718         <entry></entry>
1719        </row>
1720        <row>
1721         <entry><systemitem class="osname">UnixWare</></entry>
1722         <entry><systemitem>x86</></entry>
1723         <entry>8.0.0</entry>
1724         <entry>Peter Eisentraut (<email>peter_e@gmx.net</email>), 2004-12-14</entry>
1725         <entry><command>cc</command>, 7.1.4; see also <filename>doc/FAQ_SCO</filename></entry>
1726        </row>
1727        <row>
1728         <entry><systemitem class="osname">Windows</></entry>
1729         <entry><systemitem>x86</></entry>
1730         <entry>8.0.0</entry>
1731         <entry>Dave Page (<email>dpage@vale-housing.co.uk</email>), 2004-12-07</entry>
1732         <entry>see <filename>doc/FAQ_MINGW</filename></entry>
1733        </row>
1734        <row>
1735         <entry><systemitem class="osname">Windows with <application>Cygwin</application></></entry>
1736         <entry><systemitem>x86</></entry>
1737         <entry>8.0.0</entry>
1738         <entry>Build farm <systemitem class="systemname">gibbon</systemitem>, snapshot 2004-12-11 01:33:01</entry>
1739         <entry>see <filename>doc/FAQ_CYGWIN</filename></entry>
1740        </row>
1741       </tbody>
1742      </tgroup>
1743     </informaltable>
1744
1745   <formalpara>
1746    <title>Unsupported Platforms:</title>
1747    <para>
1748     The following platforms are either known not to work, or they used
1749     to work in a previous release and we did not receive explicit
1750     confirmation of a successful test with version &majorversion; at
1751     the time this list was compiled.  We include these here to let you
1752     know that these platforms <emphasis>could</> be supported if given
1753     some attention.
1754    </para>
1755   </formalpara>
1756
1757   <informaltable>
1758    <tgroup cols="5">
1759     <thead>
1760      <row>
1761       <entry><acronym>OS</acronym></entry>
1762       <entry>Processor</entry>
1763       <entry>Version</entry>
1764       <entry>Reported</entry>
1765       <entry>Remarks</entry>
1766      </row>
1767     </thead>
1768
1769     <tbody>
1770      <row>
1771       <entry><systemitem class="osname">BeOS</></entry>
1772       <entry><systemitem>x86</></entry>
1773       <entry>7.2</entry>
1774       <entry>2001-11-29,
1775        Cyril Velter (<email>cyril.velter@libertysurf.fr</email>)</entry>
1776       <entry>needs updates to semaphore code</entry>
1777      </row>
1778      <row>
1779       <entry><systemitem class="osname">Linux</></entry>
1780       <entry><systemitem>PlayStation 2</></entry>
1781       <entry>7.4</entry>
1782       <entry>2003-11-02,
1783        Peter Eisentraut (<email>peter_e@gmx.net</email>)</entry>
1784       <entry>
1785        needs new <filename>config.guess</filename>,
1786        <option>--disable-spinlocks</option>
1787       </entry>
1788      </row>
1789      <row>
1790       <entry><systemitem class="osname">NetBSD</></entry>
1791       <entry><systemitem>Alpha</></entry>
1792       <entry>7.2</entry>
1793       <entry>2001-11-20,
1794        Thomas Thai (<email>tom@minnesota.com</email>)</entry>
1795       <entry>1.5W</entry>
1796      </row>
1797      <row>
1798       <entry><systemitem class="osname">NetBSD</></entry>
1799       <entry><systemitem>MIPS</></entry>
1800       <entry>7.2.1</entry>
1801       <entry>2002-06-13,
1802        Warwick Hunter (<email>whunter@agile.tv</email>)</entry>
1803       <entry>1.5.3</entry>
1804      </row>
1805      <row>
1806       <entry><systemitem class="osname">NetBSD</></entry>
1807       <entry><systemitem>PowerPC</></entry>
1808       <entry>7.2</entry>
1809       <entry>2001-11-28,
1810        Bill Studenmund (<email>wrstuden@netbsd.org</email>)</entry>
1811       <entry>1.5</entry>
1812      </row>
1813      <row>
1814       <entry><systemitem class="osname">NetBSD</></entry>
1815       <entry><systemitem>VAX</></entry>
1816       <entry>7.1</entry>
1817       <entry>2001-03-30,
1818        Tom I. Helbekkmo (<email>tih@kpnQwest.no</email>)</entry>
1819       <entry>1.5</entry>
1820      </row>
1821      <row>
1822       <entry><systemitem class="osname">QNX 4 RTOS</></entry>
1823       <entry><systemitem>x86</></entry>
1824       <entry>7.2</entry>
1825       <entry>2001-12-10,
1826        Bernd Tegge (<email>tegge@repas-aeg.de</email>)
1827       </entry>
1828       <entry>needs updates to semaphore code;
1829        see also <filename>doc/FAQ_QNX4</filename></entry>
1830      </row>
1831      <row>
1832       <entry><systemitem class="osname">QNX RTOS v6</></entry>
1833       <entry><systemitem>x86</></entry>
1834       <entry>7.2</entry>
1835       <entry>2001-11-20, Igor Kovalenko (<email>Igor.Kovalenko@motorola.com</email>)</entry>
1836       <entry>patches available in archives, but too late for 7.2</entry>
1837      </row>
1838      <row>
1839       <entry><systemitem class="osname">SCO OpenServer</></entry>
1840       <entry><systemitem>x86</></entry>
1841       <entry>7.3.1</entry>
1842       <entry>2002-12-11, 
1843        Shibashish Satpathy (<email>shib@postmark.net</>)</entry>
1844       <entry>5.0.4, <command>gcc</>;  see also <filename>doc/FAQ_SCO</filename></entry>
1845      </row>
1846      <row>
1847       <entry><systemitem class="osname">SunOS 4</></entry>
1848       <entry><systemitem>Sparc</></entry>
1849       <entry>7.2</entry>
1850       <entry>2001-12-04, Tatsuo Ishii (<email>t-ishii@sra.co.jp</email>)</entry>
1851       <entry></entry>
1852      </row>
1853     </tbody>
1854    </tgroup>
1855   </informaltable>
1856  </sect1>
1857
1858 </chapter>
1859
1860 <!-- Keep this comment at the end of the file
1861 Local variables:
1862 mode:sgml
1863 sgml-omittag:nil
1864 sgml-shorttag:t
1865 sgml-minimize-attributes:nil
1866 sgml-always-quote-attributes:t
1867 sgml-indent-step:1
1868 sgml-indent-tabs-mode:nil
1869 sgml-indent-data:t
1870 sgml-parent-document:nil
1871 sgml-default-dtd-file:"./reference.ced"
1872 sgml-exposed-tags:nil
1873 sgml-local-catalogs:("/usr/share/sgml/catalog")
1874 sgml-local-ecat-files:nil
1875 End:
1876 -->