<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Requirements</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 8.0.11 Documentation" HREF="index.html"><LINK REL="UP" TITLE=" Installation Instructions" HREF="installation.html"><LINK REL="PREVIOUS" TITLE=" Installation Instructions" HREF="installation.html"><LINK REL="NEXT" TITLE="Getting The Source" HREF="install-getsource.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2007-02-02T03:57:22"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" >PostgreSQL 8.0.11 Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="installation.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="installation.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 14. Installation Instructions</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="installation.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="install-getsource.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="INSTALL-REQUIREMENTS" >14.2. Requirements</A ></H1 ><P > In general, a modern Unix-compatible platform should be able to run <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >. The platforms that had received specific testing at the time of release are listed in <A HREF="supported-platforms.html" >Section 14.7</A > below. In the <TT CLASS="FILENAME" >doc</TT > subdirectory of the distribution there are several platform-specific <ACRONYM CLASS="ACRONYM" >FAQ</ACRONYM > documents you might wish to consult if you are having trouble. </P ><P > The following software packages are required for building <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >: <P ></P ></P><UL ><LI ><P > <A NAME="AEN15017" ></A > <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > <SPAN CLASS="APPLICATION" >make</SPAN > is required; other <SPAN CLASS="APPLICATION" >make</SPAN > programs will <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >not</I ></SPAN > work. <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > <SPAN CLASS="APPLICATION" >make</SPAN > is often installed under the name <TT CLASS="FILENAME" >gmake</TT >; this document will always refer to it by that name. (On some systems <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > <SPAN CLASS="APPLICATION" >make</SPAN > is the default tool with the name <TT CLASS="FILENAME" >make</TT >.) To test for <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > <SPAN CLASS="APPLICATION" >make</SPAN > enter </P><PRE CLASS="SCREEN" ><KBD CLASS="USERINPUT" >gmake --version</KBD ></PRE ><P> It is recommended to use version 3.76.1 or later. </P ></LI ><LI ><P > You need an <ACRONYM CLASS="ACRONYM" >ISO</ACRONYM >/<ACRONYM CLASS="ACRONYM" >ANSI</ACRONYM > C compiler. Recent versions of <SPAN CLASS="PRODUCTNAME" >GCC</SPAN > are recommendable, but <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > is known to build with a wide variety of compilers from different vendors. </P ></LI ><LI ><P > <SPAN CLASS="APPLICATION" >gzip</SPAN > is needed to unpack the distribution in the first place. </P ></LI ><LI ><P > <A NAME="AEN15044" ></A > The <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > <SPAN CLASS="PRODUCTNAME" >Readline</SPAN > library (for comfortable line editing and command history retrieval) will be used by default. If you don't want to use it then you must specify the <TT CLASS="OPTION" >--without-readline</TT > option for <TT CLASS="FILENAME" >configure</TT >. (On <SPAN CLASS="PRODUCTNAME" >NetBSD</SPAN >, the <TT CLASS="FILENAME" >libedit</TT > library is <SPAN CLASS="PRODUCTNAME" >Readline</SPAN >-compatible and is used if <TT CLASS="FILENAME" >libreadline</TT > is not found.) If you are using a package-based Linux distribution, be aware that you need both the <TT CLASS="LITERAL" >readline</TT > and <TT CLASS="LITERAL" >readline-devel</TT > packages, if those are separate in your distribution. </P ></LI ><LI ><P > <A NAME="AEN15058" ></A > Additional software is needed to build <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > on <SPAN CLASS="PRODUCTNAME" >Windows</SPAN >. You can build <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > for <SPAN CLASS="PRODUCTNAME" >NT</SPAN >-based versions of <SPAN CLASS="PRODUCTNAME" >Windows</SPAN > (like Windows XP and 2003) using <SPAN CLASS="PRODUCTNAME" >MinGW</SPAN >; see <TT CLASS="FILENAME" >doc/FAQ_MINGW</TT > for details. You can also build <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > using <SPAN CLASS="PRODUCTNAME" >Cygwin</SPAN >; see <TT CLASS="FILENAME" >doc/FAQ_CYGWIN</TT >. A <SPAN CLASS="PRODUCTNAME" >Cygwin</SPAN >-based build will work on older versions of <SPAN CLASS="PRODUCTNAME" >Windows</SPAN >, but if you have a choice, we recommend the <SPAN CLASS="PRODUCTNAME" >MinGW</SPAN > approach. While these are the only tool sets recommended for a complete build, it is possible to build just the C client library (<SPAN CLASS="APPLICATION" >libpq</SPAN >) and the interactive terminal (<SPAN CLASS="APPLICATION" >psql</SPAN >) using other <SPAN CLASS="PRODUCTNAME" >Windows</SPAN > tool sets. For details of that see <A HREF="install-win32.html" >Chapter 15</A >. </P ></LI ></UL ><P> </P ><P > The following packages are optional. They are not required in the default configuration, but they are needed when certain build options are enabled, as explained below. <P ></P ></P><UL ><LI ><P > To build the server programming language <SPAN CLASS="APPLICATION" >PL/Perl</SPAN > you need a full <SPAN CLASS="PRODUCTNAME" >Perl</SPAN > installation, including the <TT CLASS="FILENAME" >libperl</TT > library and the header files. Since <SPAN CLASS="APPLICATION" >PL/Perl</SPAN > will be a shared library, the <A NAME="AEN15086" ></A > <TT CLASS="FILENAME" >libperl</TT > library must be a shared library also on most platforms. This appears to be the default in recent <SPAN CLASS="PRODUCTNAME" >Perl</SPAN > versions, but it was not in earlier versions, and in any case it is the choice of whomever installed Perl at your site. </P ><P > If you don't have the shared library but you need one, a message like this will appear during the build to point out this fact: </P><PRE CLASS="SCREEN" >*** Cannot build PL/Perl because libperl is not a shared library. *** You might have to rebuild your Perl installation. Refer to *** the documentation for details.</PRE ><P> (If you don't follow the on-screen output you will merely notice that the <SPAN CLASS="APPLICATION" >PL/Perl</SPAN > library object, <TT CLASS="FILENAME" >plperl.so</TT > or similar, will not be installed.) If you see this, you will have to rebuild and install <SPAN CLASS="PRODUCTNAME" >Perl</SPAN > manually to be able to build <SPAN CLASS="APPLICATION" >PL/Perl</SPAN >. During the configuration process for <SPAN CLASS="PRODUCTNAME" >Perl</SPAN >, request a shared library. </P ></LI ><LI ><P > To build the <SPAN CLASS="APPLICATION" >PL/Python</SPAN > server programming language, you need a <SPAN CLASS="PRODUCTNAME" >Python</SPAN > installation with the header files and the <SPAN CLASS="APPLICATION" >distutils</SPAN > module. The <SPAN CLASS="APPLICATION" >distutils</SPAN > module is included by default with <SPAN CLASS="PRODUCTNAME" >Python</SPAN > 1.6 and later; users of earlier versions of <SPAN CLASS="PRODUCTNAME" >Python</SPAN > will need to install it. </P ><P > Since <SPAN CLASS="APPLICATION" >PL/Python</SPAN > will be a shared library, the <A NAME="AEN15107" ></A > <TT CLASS="FILENAME" >libpython</TT > library must be a shared library also on most platforms. This is not the case in a default <SPAN CLASS="PRODUCTNAME" >Python</SPAN > installation. If after building and installing you have a file called <TT CLASS="FILENAME" >plpython.so</TT > (possibly a different extension), then everything went well. Otherwise you should have seen a notice like this flying by: </P><PRE CLASS="SCREEN" >*** Cannot build PL/Python because libpython is not a shared library. *** You might have to rebuild your Python installation. Refer to *** the documentation for details.</PRE ><P> That means you have to rebuild (part of) your <SPAN CLASS="PRODUCTNAME" >Python</SPAN > installation to supply this shared library. </P ><P > If you have problems, run <SPAN CLASS="PRODUCTNAME" >Python</SPAN > 2.3 or later's configure using the <TT CLASS="LITERAL" >--enable-shared</TT > flag. On some operating systems you don't have to build a shared library, but you will have to convince the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > build system of this. Consult the <TT CLASS="FILENAME" >Makefile</TT > in the <TT CLASS="FILENAME" >src/pl/plpython</TT > directory for details. </P ></LI ><LI ><P > If you want to build the <SPAN CLASS="APPLICATION" >PL/Tcl</SPAN > procedural language, you of course need a Tcl installation. </P ></LI ><LI ><P > To enable Native Language Support (<ACRONYM CLASS="ACRONYM" >NLS</ACRONYM >), that is, the ability to display a program's messages in a language other than English, you need an implementation of the <SPAN CLASS="APPLICATION" >Gettext</SPAN > <ACRONYM CLASS="ACRONYM" >API</ACRONYM >. Some operating systems have this built-in (e.g., <SPAN CLASS="SYSTEMITEM" >Linux</SPAN >, <SPAN CLASS="SYSTEMITEM" >NetBSD</SPAN >, <SPAN CLASS="SYSTEMITEM" >Solaris</SPAN >), for other systems you can download an add-on package from here: <A HREF="http://developer.postgresql.org/~petere/bsd-gettext/" TARGET="_top" >http://developer.postgresql.org/~petere/bsd-gettext/</A >. If you are using the <SPAN CLASS="APPLICATION" >Gettext</SPAN > implementation in the <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > C library then you will additionally need the <SPAN CLASS="PRODUCTNAME" >GNU Gettext</SPAN > package for some utility programs. For any of the other implementations you will not need it. </P ></LI ><LI ><P > <SPAN CLASS="APPLICATION" >Kerberos</SPAN >, <SPAN CLASS="PRODUCTNAME" >OpenSSL</SPAN >, and/or <SPAN CLASS="APPLICATION" >PAM</SPAN >, if you want to support authentication or encryption using these services. </P ></LI ></UL ><P> </P ><P > If you are building from a <ACRONYM CLASS="ACRONYM" >CVS</ACRONYM > tree instead of using a released source package, or if you want to do development, you also need the following packages: <P ></P ></P><UL ><LI ><P > <A NAME="AEN15145" ></A > <A NAME="AEN15147" ></A > <A NAME="AEN15149" ></A > GNU <SPAN CLASS="APPLICATION" >Flex</SPAN > and <SPAN CLASS="APPLICATION" >Bison</SPAN > are needed to build a CVS checkout or if you changed the actual scanner and parser definition files. If you need them, be sure to get <SPAN CLASS="APPLICATION" >Flex</SPAN > 2.5.4 or later and <SPAN CLASS="APPLICATION" >Bison</SPAN > 1.875 or later. Other <SPAN CLASS="APPLICATION" >yacc</SPAN > programs can sometimes be used, but doing so requires extra effort and is not recommended. Other <SPAN CLASS="APPLICATION" >lex</SPAN > programs will definitely not work. </P ></LI ></UL ><P> </P ><P > If you need to get a <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > package, you can find it at your local <ACRONYM CLASS="ACRONYM" >GNU</ACRONYM > mirror site (see <A HREF="http://www.gnu.org/order/ftp.html" TARGET="_top" >http://www.gnu.org/order/ftp.html</A > for a list) or at <A HREF="ftp://ftp.gnu.org/gnu/" TARGET="_top" >ftp://ftp.gnu.org/gnu/</A >. </P ><P > Also check that you have sufficient disk space. You will need about 65 MB for the source tree during compilation and about 15 MB for the installation directory. An empty database cluster takes about 25 MB, databases take about five times the amount of space that a flat text file with the same data would take. If you are going to run the regression tests you will temporarily need up to an extra 90 MB. Use the <TT CLASS="COMMAND" >df</TT > command to check free disk space. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="installation.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="install-getsource.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Installation Instructions</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="installation.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Getting The Source</TD ></TR ></TABLE ></DIV ></BODY ></HTML >