diff options
Diffstat (limited to 'doc/src/sgml/html/install-requirements.html')
-rw-r--r-- | doc/src/sgml/html/install-requirements.html | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/doc/src/sgml/html/install-requirements.html b/doc/src/sgml/html/install-requirements.html new file mode 100644 index 0000000..7464d5b --- /dev/null +++ b/doc/src/sgml/html/install-requirements.html @@ -0,0 +1,197 @@ +<?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>17.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 Vsnapshot" /><link rel="prev" href="install-short.html" title="17.1. Short Version" /><link rel="next" href="install-getsource.html" title="17.3. Getting the Source" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">17.2. Requirements</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="install-short.html" title="17.1. Short Version">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="installation.html" title="Chapter 17. Installation from Source Code">Up</a></td><th width="60%" align="center">Chapter 17. Installation from Source Code</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 15.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="install-getsource.html" title="17.3. Getting the Source">Next</a></td></tr></table><hr /></div><div class="sect1" id="INSTALL-REQUIREMENTS"><div class="titlepage"><div><div><h2 class="title" style="clear: both">17.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="17.6. Supported Platforms">Section 17.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.4.6.3.2.1.1.1" class="indexterm"></a> + + <acronym class="acronym">GNU</acronym> <span class="application">make</span> version 3.81 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.4.6.3.2.4.1.1" class="indexterm"></a> + <a id="id-1.6.4.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.4.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.4.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">sysconfig</span> module. The minimum + required version is <span class="productname">Python</span> 3.2. + </p><p> + Since <span class="application">PL/Python</span> will be a shared + library, the <a id="id-1.6.4.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="https://www.gnu.org/software/gettext/" target="_top">https://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 + required version is 1.0.1. + </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> + You need <span class="productname">LZ4</span>, if you want to support + compression of data with that method; see + <a class="xref" href="runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION">default_toast_compression</a> and + <a class="xref" href="runtime-config-wal.html#GUC-WAL-COMPRESSION">wal_compression</a>. + </p></li><li class="listitem"><p> + You need <span class="productname">Zstandard</span>, if you want to support + compression of data with that method; see + <a class="xref" href="runtime-config-wal.html#GUC-WAL-COMPRESSION">wal_compression</a>. + The minimum required version is 1.4.0. + </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.4.6.5.2.1.1.1" class="indexterm"></a> + <a id="id-1.6.4.6.5.2.1.1.2" class="indexterm"></a> + <a id="id-1.6.4.6.5.2.1.1.3" class="indexterm"></a> + <a id="id-1.6.4.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.4.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 + 350 MB for the source tree during compilation and about 60 MB for + the installation directory. An empty database cluster takes about + 40 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 + 300 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" title="17.1. Short Version">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="installation.html" title="Chapter 17. Installation from Source Code">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="install-getsource.html" title="17.3. Getting the Source">Next</a></td></tr><tr><td width="40%" align="left" valign="top">17.1. Short Version </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 15.4 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 17.3. Getting the Source</td></tr></table></div></body></html>
\ No newline at end of file |