|
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>16.2. Requirements</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="install-short.html" title="16.1. Short Version" /><link rel="next" href="install-getsource.html" title="16.3. Getting the Source" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">16.2. Requirements</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="install-short.html" title="16.1. Short Version">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="installation.html" title="Chapter 16. Installation from Source Code">Up</a></td><th width="60%" align="center">Chapter 16. Installation from Source Code</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 12.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="install-getsource.html" title="16.3. Getting the Source">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="INSTALL-REQUIREMENTS"><div class="titlepage"><div><div><h2 class="title" style="clear: both">16.2. Requirements</h2></div></div></div><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 described in <a class="xref" href="supported-platforms.html" title="16.6. Supported Platforms">Section 16.6</a>
- below.
- </p><p>
- The following software packages are required for building
- <span class="productname">PostgreSQL</span>:
-
- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
- <a id="id-1.6.3.6.3.2.1.1.1" class="indexterm"></a>
-
- <acronym class="acronym">GNU</acronym> <span class="application">make</span> version 3.80 or newer is required; other
- <span class="application">make</span> programs or older <acronym class="acronym">GNU</acronym> <span class="application">make</span> versions will <span class="emphasis"><em>not</em></span> work.
- (<acronym class="acronym">GNU</acronym> <span class="application">make</span> is sometimes installed under
- the name <code class="filename">gmake</code>.) To test for <acronym class="acronym">GNU</acronym>
- <span class="application">make</span> enter:
- </p><pre class="screen">
- <strong class="userinput"><code>make --version</code></strong>
- </pre><p>
- </p></li><li class="listitem"><p>
- You need an <acronym class="acronym">ISO</acronym>/<acronym class="acronym">ANSI</acronym> C compiler (at least
- C99-compliant). Recent
- versions of <span class="productname">GCC</span> are recommended, but
- <span class="productname">PostgreSQL</span> is known to build using a wide variety
- of compilers from different vendors.
- </p></li><li class="listitem"><p>
- <span class="application">tar</span> is required to unpack the source
- distribution, in addition to either
- <span class="application">gzip</span> or <span class="application">bzip2</span>.
- </p></li><li class="listitem"><p>
- <a id="id-1.6.3.6.3.2.4.1.1" class="indexterm"></a>
- <a id="id-1.6.3.6.3.2.4.1.2" class="indexterm"></a>
-
- The <acronym class="acronym">GNU</acronym> <span class="productname">Readline</span> library is used by
- default. It allows <span class="application">psql</span> (the
- PostgreSQL command line SQL interpreter) to remember each
- command you type, and allows you to use arrow keys to recall and
- edit previous commands. This is very helpful and is strongly
- recommended. If you don't want to use it then you must specify
- the <code class="option">--without-readline</code> option to
- <code class="filename">configure</code>. As an alternative, you can often use the
- BSD-licensed <code class="filename">libedit</code> library, originally
- developed on <span class="productname">NetBSD</span>. The
- <code class="filename">libedit</code> library is
- GNU <span class="productname">Readline</span>-compatible and is used if
- <code class="filename">libreadline</code> is not found, or if
- <code class="option">--with-libedit-preferred</code> is used as an
- option to <code class="filename">configure</code>. If you are using a package-based
- Linux distribution, be aware that you need both the
- <code class="literal">readline</code> and <code class="literal">readline-devel</code> packages, if
- those are separate in your distribution.
- </p></li><li class="listitem"><p>
- <a id="id-1.6.3.6.3.2.5.1.1" class="indexterm"></a>
-
- The <span class="productname">zlib</span> compression library is
- used by default. If you don't want to use it then you must
- specify the <code class="option">--without-zlib</code> option to
- <code class="filename">configure</code>. Using this option disables
- support for compressed archives in <span class="application">pg_dump</span> and
- <span class="application">pg_restore</span>.
- </p></li></ul></div><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><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><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
- <code class="filename">libperl</code> library and the header files.
- The minimum required version is <span class="productname">Perl</span> 5.8.3.
- Since <span class="application">PL/Perl</span> will be a shared
- library, the <a id="id-1.6.3.6.4.1.1.1.6" class="indexterm"></a>
- <code class="filename">libperl</code> 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. <code class="filename">configure</code> will fail
- if building <span class="application">PL/Perl</span> is selected but it cannot
- find a shared <code class="filename">libperl</code>. In that case, 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><p>
- If you intend to make more than incidental use of
- <span class="application">PL/Perl</span>, you should ensure that the
- <span class="productname">Perl</span> installation was built with the
- <code class="literal">usemultiplicity</code> option enabled (<code class="literal">perl -V</code>
- will show whether this is the case).
- </p></li><li class="listitem"><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 minimum
- required version is <span class="productname">Python</span> 2.4.
- <span class="productname">Python 3</span> is supported if it's
- version 3.1 or later; but see
- <a class="xref" href="plpython-python23.html" title="45.1. Python 2 vs. Python 3">Section 45.1</a>
- when using Python 3.
- </p><p>
- Since <span class="application">PL/Python</span> will be a shared
- library, the <a id="id-1.6.3.6.4.1.2.2.2" class="indexterm"></a>
- <code class="filename">libpython</code> library must be a shared library
- also on most platforms. This is not the case in a default
- <span class="productname">Python</span> installation built from source, but a
- shared library is available in many operating system
- distributions. <code class="filename">configure</code> will fail if
- building <span class="application">PL/Python</span> is selected but it cannot
- find a shared <code class="filename">libpython</code>. That might mean that you
- either have to install additional packages or rebuild (part of) your
- <span class="productname">Python</span> installation to provide this shared
- library. When building from source, run <span class="productname">Python</span>'s
- configure with the <code class="literal">--enable-shared</code> flag.
- </p></li><li class="listitem"><p>
- To build the <span class="application">PL/Tcl</span>
- procedural language, you of course need a <span class="productname">Tcl</span>
- installation. The minimum required version is
- <span class="productname">Tcl</span> 8.4.
- </p></li><li class="listitem"><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 <a class="ulink" href="http://www.gnu.org/software/gettext/" target="_top">http://www.gnu.org/software/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 class="listitem"><p>
- You need <span class="productname">OpenSSL</span>, if you want to support
- encrypted client connections. <span class="productname">OpenSSL</span> is
- also required for random number generation on platforms that do not
- have <code class="filename">/dev/urandom</code> (except Windows). The minimum
- version required is 0.9.8.
- </p></li><li class="listitem"><p>
- You need <span class="application">Kerberos</span>, <span class="productname">OpenLDAP</span>,
- and/or <span class="application">PAM</span>, if you want to support authentication
- using those services.
- </p></li><li class="listitem"><p>
- To build the <span class="productname">PostgreSQL</span> documentation,
- there is a separate set of requirements; see
- <a class="xref" href="docguide-toolsets.html" title="J.2. Tool Sets">Section J.2</a>.
- </p></li></ul></div><p>
- </p><p>
- If you are building from a <span class="productname">Git</span> tree instead of
- using a released source package, or if you want to do server development,
- you also need the following packages:
-
- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
- <a id="id-1.6.3.6.5.2.1.1.1" class="indexterm"></a>
- <a id="id-1.6.3.6.5.2.1.1.2" class="indexterm"></a>
- <a id="id-1.6.3.6.5.2.1.1.3" class="indexterm"></a>
- <a id="id-1.6.3.6.5.2.1.1.4" class="indexterm"></a>
-
- <span class="application">Flex</span> and <span class="application">Bison</span>
- are needed to build from a Git 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.31 or later and
- <span class="application">Bison</span> 1.875 or later. Other <span class="application">lex</span>
- and <span class="application">yacc</span> programs cannot be used.
- </p></li><li class="listitem"><p>
- <a id="id-1.6.3.6.5.2.2.1.1" class="indexterm"></a>
-
- <span class="application">Perl</span> 5.8.3 or later is needed to build from a Git checkout,
- or if you changed the input files for any of the build steps that
- use Perl scripts. If building on Windows you will need
- <span class="application">Perl</span> in any case. <span class="application">Perl</span> is
- also required to run some test suites.
- </p></li></ul></div><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 class="ulink" href="https://www.gnu.org/prep/ftp" target="_top">https://www.gnu.org/prep/ftp</a>
- for a list) or at <a class="ulink" 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
- 100 MB for the source tree during compilation and about 20 MB for
- the installation directory. An empty database cluster takes about
- 35 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
- 150 MB. Use the <code class="command">df</code> command to check free disk
- space.
- </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-short.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="installation.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="install-getsource.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">16.1. Short Version </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 16.3. Getting the Source</td></tr></table></div></body></html>
|