1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<!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@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 11beta1 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>
3
In general, a modern Unix-compatible platform should be able to run
4
<span class="productname">PostgreSQL</span>.
5
The platforms that had received specific testing at the
6
time of release are listed in <a class="xref" href="supported-platforms.html" title="16.6. Supported Platforms">Section 16.6</a>
7
below. In the <code class="filename">doc</code> subdirectory of the distribution
8
there are several platform-specific <acronym class="acronym">FAQ</acronym> documents you
9
might wish to consult if you are having trouble.
11
The following software packages are required for building
12
<span class="productname">PostgreSQL</span>:
14
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
15
<a id="id-1.6.3.5.3.2.1.1.1" class="indexterm"></a>
17
<acronym class="acronym">GNU</acronym> <span class="application">make</span> version 3.80 or newer is required; other
18
<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.
19
(<acronym class="acronym">GNU</acronym> <span class="application">make</span> is sometimes installed under
20
the name <code class="filename">gmake</code>.) To test for <acronym class="acronym">GNU</acronym>
21
<span class="application">make</span> enter:
22
</p><pre class="screen">
23
<strong class="userinput"><code>make --version</code></strong>
25
</p></li><li class="listitem"><p>
26
You need an <acronym class="acronym">ISO</acronym>/<acronym class="acronym">ANSI</acronym> C compiler (at least
27
C89-compliant). Recent
28
versions of <span class="productname">GCC</span> are recommended, but
29
<span class="productname">PostgreSQL</span> is known to build using a wide variety
30
of compilers from different vendors.
31
</p></li><li class="listitem"><p>
32
<span class="application">tar</span> is required to unpack the source
33
distribution, in addition to either
34
<span class="application">gzip</span> or <span class="application">bzip2</span>.
35
</p></li><li class="listitem"><p>
36
<a id="id-1.6.3.5.3.2.4.1.1" class="indexterm"></a>
37
<a id="id-1.6.3.5.3.2.4.1.2" class="indexterm"></a>
39
The <acronym class="acronym">GNU</acronym> <span class="productname">Readline</span> library is used by
40
default. It allows <span class="application">psql</span> (the
41
PostgreSQL command line SQL interpreter) to remember each
42
command you type, and allows you to use arrow keys to recall and
43
edit previous commands. This is very helpful and is strongly
44
recommended. If you don't want to use it then you must specify
45
the <code class="option">--without-readline</code> option to
46
<code class="filename">configure</code>. As an alternative, you can often use the
47
BSD-licensed <code class="filename">libedit</code> library, originally
48
developed on <span class="productname">NetBSD</span>. The
49
<code class="filename">libedit</code> library is
50
GNU <span class="productname">Readline</span>-compatible and is used if
51
<code class="filename">libreadline</code> is not found, or if
52
<code class="option">--with-libedit-preferred</code> is used as an
53
option to <code class="filename">configure</code>. If you are using a package-based
54
Linux distribution, be aware that you need both the
55
<code class="literal">readline</code> and <code class="literal">readline-devel</code> packages, if
56
those are separate in your distribution.
57
</p></li><li class="listitem"><p>
58
<a id="id-1.6.3.5.3.2.5.1.1" class="indexterm"></a>
60
The <span class="productname">zlib</span> compression library is
61
used by default. If you don't want to use it then you must
62
specify the <code class="option">--without-zlib</code> option to
63
<code class="filename">configure</code>. Using this option disables
64
support for compressed archives in <span class="application">pg_dump</span> and
65
<span class="application">pg_restore</span>.
66
</p></li></ul></div><p>
68
The following packages are optional. They are not required in the
69
default configuration, but they are needed when certain build
70
options are enabled, as explained below:
72
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
73
To build the server programming language
74
<span class="application">PL/Perl</span> you need a full
75
<span class="productname">Perl</span> installation, including the
76
<code class="filename">libperl</code> library and the header files.
77
The minimum required version is <span class="productname">Perl</span> 5.8.3.
78
Since <span class="application">PL/Perl</span> will be a shared
79
library, the <a id="id-1.6.3.5.4.1.1.1.6" class="indexterm"></a>
80
<code class="filename">libperl</code> library must be a shared library
81
also on most platforms. This appears to be the default in
82
recent <span class="productname">Perl</span> versions, but it was not
83
in earlier versions, and in any case it is the choice of whomever
84
installed Perl at your site. <code class="filename">configure</code> will fail
85
if building <span class="application">PL/Perl</span> is selected but it cannot
86
find a shared <code class="filename">libperl</code>. In that case, you will have
87
to rebuild and install <span class="productname">Perl</span> manually to be
88
able to build <span class="application">PL/Perl</span>. During the
89
configuration process for <span class="productname">Perl</span>, request a
92
If you intend to make more than incidental use of
93
<span class="application">PL/Perl</span>, you should ensure that the
94
<span class="productname">Perl</span> installation was built with the
95
<code class="literal">usemultiplicity</code> option enabled (<code class="literal">perl -V</code>
96
will show whether this is the case).
97
</p></li><li class="listitem"><p>
98
To build the <span class="application">PL/Python</span> server programming
99
language, you need a <span class="productname">Python</span>
100
installation with the header files and
101
the <span class="application">distutils</span> module. The minimum
102
required version is <span class="productname">Python</span> 2.4.
103
<span class="productname">Python 3</span> is supported if it's
104
version 3.1 or later; but see
105
<a class="xref" href="plpython-python23.html" title="46.1. Python 2 vs. Python 3">Section 46.1</a>
108
Since <span class="application">PL/Python</span> will be a shared
109
library, the <a id="id-1.6.3.5.4.1.2.2.2" class="indexterm"></a>
110
<code class="filename">libpython</code> library must be a shared library
111
also on most platforms. This is not the case in a default
112
<span class="productname">Python</span> installation built from source, but a
113
shared library is available in many operating system
114
distributions. <code class="filename">configure</code> will fail if
115
building <span class="application">PL/Python</span> is selected but it cannot
116
find a shared <code class="filename">libpython</code>. That might mean that you
117
either have to install additional packages or rebuild (part of) your
118
<span class="productname">Python</span> installation to provide this shared
119
library. When building from source, run <span class="productname">Python</span>'s
120
configure with the <code class="literal">--enable-shared</code> flag.
121
</p></li><li class="listitem"><p>
122
To build the <span class="application">PL/Tcl</span>
123
procedural language, you of course need a <span class="productname">Tcl</span>
124
installation. The minimum required version is
125
<span class="productname">Tcl</span> 8.4.
126
</p></li><li class="listitem"><p>
127
To enable Native Language Support (<acronym class="acronym">NLS</acronym>), that
128
is, the ability to display a program's messages in a language
129
other than English, you need an implementation of the
130
<span class="application">Gettext</span> <acronym class="acronym">API</acronym>. Some operating
131
systems have this built-in (e.g., <span class="systemitem">Linux</span>, <span class="systemitem">NetBSD</span>,
132
<span class="systemitem">Solaris</span>), for other systems you
133
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>.
134
If you are using the <span class="application">Gettext</span> implementation in
135
the <acronym class="acronym">GNU</acronym> C library then you will additionally
136
need the <span class="productname">GNU Gettext</span> package for some
137
utility programs. For any of the other implementations you will
139
</p></li><li class="listitem"><p>
140
You need <span class="productname">OpenSSL</span>, if you want to support
141
encrypted client connections. The minimum required version is
143
</p></li><li class="listitem"><p>
144
You need <span class="application">Kerberos</span>, <span class="productname">OpenLDAP</span>,
145
and/or <span class="application">PAM</span>, if you want to support authentication
146
using those services.
147
</p></li><li class="listitem"><p>
148
To build the <span class="productname">PostgreSQL</span> documentation,
149
there is a separate set of requirements; see
150
<a class="xref" href="docguide-toolsets.html" title="J.2. Tool Sets">Section J.2</a>.
151
</p></li></ul></div><p>
153
If you are building from a <span class="productname">Git</span> tree instead of
154
using a released source package, or if you want to do server development,
155
you also need the following packages:
157
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
158
<a id="id-1.6.3.5.5.2.1.1.1" class="indexterm"></a>
159
<a id="id-1.6.3.5.5.2.1.1.2" class="indexterm"></a>
160
<a id="id-1.6.3.5.5.2.1.1.3" class="indexterm"></a>
161
<a id="id-1.6.3.5.5.2.1.1.4" class="indexterm"></a>
163
<span class="application">Flex</span> and <span class="application">Bison</span>
164
are needed to build from a Git checkout, or if you changed the actual
165
scanner and parser definition files. If you need them, be sure
166
to get <span class="application">Flex</span> 2.5.31 or later and
167
<span class="application">Bison</span> 1.875 or later. Other <span class="application">lex</span>
168
and <span class="application">yacc</span> programs cannot be used.
169
</p></li><li class="listitem"><p>
170
<a id="id-1.6.3.5.5.2.2.1.1" class="indexterm"></a>
172
<span class="application">Perl</span> 5.8.3 or later is needed to build from a Git checkout,
173
or if you changed the input files for any of the build steps that
174
use Perl scripts. If building on Windows you will need
175
<span class="application">Perl</span> in any case. <span class="application">Perl</span> is
176
also required to run some test suites.
177
</p></li></ul></div><p>
179
If you need to get a <acronym class="acronym">GNU</acronym> package, you can find
180
it at your local <acronym class="acronym">GNU</acronym> mirror site (see <a class="ulink" href="http://www.gnu.org/order/ftp.html" target="_top">http://www.gnu.org/order/ftp.html</a>
181
for a list) or at <a class="ulink" href="ftp://ftp.gnu.org/gnu/" target="_top">ftp://ftp.gnu.org/gnu/</a>.
183
Also check that you have sufficient disk space. You will need about
184
100 MB for the source tree during compilation and about 20 MB for
185
the installation directory. An empty database cluster takes about
186
35 MB; databases take about five times the amount of space that a
187
flat text file with the same data would take. If you are going to
188
run the regression tests you will temporarily need up to an extra
189
150 MB. Use the <code class="command">df</code> command to check free disk
191
</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>
b'\\ No newline at end of file'