En général, les plateformes Unix modernes sont capables d'exécuter PostgreSQL. Les plateformes sur lesquelles des tests ont été effectués sont décrites dans la Section 17.6 ci-après.
Les logiciels suivants sont nécessaires pour compiler PostgreSQL :
GNU make version 3.81 (ou
une version plus récente) est nécessaire ; les autres programmes
make ou les versions plus anciennes de
GNU make ne
fonctionnent pas.
(GNU make est parfois installé sous le nom
gmake
). Pour
connaître la version utilisée, saisir
make --version
Alternativement, PostgreSQL peut être installé en utilisant Meson. Ceci est actuellement expérimental et ne fonctionne uniquement qu'en générant à partir d'un dépôt Git (et non pas d'une archive tar de la distribution). Si vous choisissez d'utiliser Meson, alors vous n'avez pas besoin de GNU make, mais les autres prérequis ci-dessous sont toujours nécessaires.
La version minimale requise de Meson est 0.54.
Il est nécessaire d'avoir un compilateur C ISO/ANSI (au minimum compatible avec C99). Une version récente de GCC est recommandée, mais PostgreSQL est connu pour compiler avec de nombreux compilateurs de différents vendeurs.
tar est requis pour déballer la distribution des sources, associé à gzip ou bzip2.
La bibliothèque GNU Readline est
utilisée par défaut. Elle permet à psql
(l'interpréteur de ligne de commandes SQL de PostgreSQL) de se souvenir de
chaque commande saisie, et permet d'utiliser les flèches du clavier
pour rappeler et éditer les commandes précédentes. C'est très
pratique et fortement recommandé.
Si vous n'en voulez pas, vous devrez renseigner l'option
--without-readline
lors de l'appel à
la commande configure
. Une alternative possible est
l'utilisation de la bibliothèque libedit
sous licence
BSD, développée au départ sur NetBSD. La
bibliothèque libedit
est compatible
GNU Readline, et est utilisée si cette dernière
n'est pas trouvée, ou si l'option --with-libedit-preferred
est fournie à configure
. Si vous utilisez une
distribution Linux à base de paquets, et que ceux de
readline
et readline-devel
sont
séparés, il faut impérativement installer les deux.
La bibliothèque de compression zlib est
utilisée par défaut. Si vous n'en voulez pas, il faut préciser
--without-zlib
à
configure
. Cela a pour conséquence de désactiver le
support des archives compressées dans pg_dump et
pg_restore.
La bibliothèque ICU est utilisée par défaut.
Si vous ne voulez pas l'utiliser, alors vous devez
préciser l'option --without-icu
à
configure
. Utiliser cette option désactive le support
de la fonctionnalité de collation ICU (voir Section 24.2).
Le support ICU nécessite l'installation du paquet ICU4C. La version minimale requise est actuellement ICU4C 4.2.
Par défaut,
pkg-config
sera utilisé pour trouver les options requises de compilation. Ceci est
supporté pour ICU4C version 4.6 et supérieure.
Pour les versions plus anciennes, les variables ICU_CFLAGS
et ICU_LIBS
doivent être précisées à
configure
, comme dans cet exemple :
./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
(Si ICU4C est dans le chemin de recherche pas
défaut pour le compilateur, alors vous devez toujours préciser des chaines
non vides afin d'éviter d'utiliser pkg-config,
par exemple : ICU_CFLAGS=' '
.)
Les paquets suivants sont optionnels. S'ils ne sont pas obligatoires lors d'une compilation par défaut de PostgreSQL, ils le deviennent lorsque certaines options sont utilisées, comme cela est expliqué par la suite.
Pour compiler le langage procédural PL/Perl,
une installation complète de Perl,
comprenant la bibliothèque libperl
et les
fichiers d'en-tête est nécessaire.
La version minimale requise est Perl 5.14.
Comme PL/Perl est une bibliothèque partagée,
la bibliothèque
libperl
doit aussi être partagée sur la plupart des
plateformes. C'est désormais le choix par défaut dans les versions
récentes de Perl, mais ce ne l'était pas
dans les versions plus anciennes ; dans tous les cas, c'est du ressort de
celui qui a installé Perl chez vous.
configure
échouera si la
compilation de PL/Perl est sélectionnée, mais
qu'il ne trouve pas une bibliothèque partagée
libperl
.
Dans ce cas, vous devrez recompiler et
installer Perl manuellement pour être capable
de compiler PL/Perl. Lors du processus de
configuration pour Perl, demandez une
bibliothèque partagée.
Si vous avez l'intention d'avoir plus qu'une utilisation occasionnelle
de PL/Perl, vous devez vous assurer que
l'installation de Perl a été faite avec
l'option usemultiplicity
activée (perl
-V
vous indiquera si c'est le cas).
Pour compiler le langage de programmation serveur PL/Python, il faut que Python soit installé avec les fichiers d'en-tête et le module distutils. La version minimum requise est Python 3.2.
Puisque PL/Python doit être une bibliothèque
partagée, la bibliothèque
libpython
doit l'être aussi sur la plupart des
plateformes. Ce n'est pas le cas des installations par défaut de
Python compilées à partir des sources, mais
une bibliothèque partagée est disponible dans de nombreuses
distributions de systèmes d'exploitation. configure
échouera si la compilation de PL/Python est
sélectionnée et qu'il ne peut pas trouver une bibliothèque partagée
libpython
.
Cela peut impliquer que vous deviez
soit installer des paquets supplémentaires, soit recompiler
(une partie de) votre installation Python pour
fournir cette bibliothèque partagée. Lors de la compilation à partir
des sources, lancez le configure
de Python
avec l'option --enable-shared
.
Pour compiler le langage procédural PL/Tcl, Tcl doit bien sûr être installé. La version minimale requise est Tcl 8.4.
Pour activer le support de langage natif (NLS), qui permet d'afficher les messages d'un programme dans une langue autre que l'anglais, une implémentation de l'API Gettext est nécessaire. Certains systèmes d'exploitation l'intègrent (par exemple, Linux, NetBSD, Solaris) ; pour d'autres systèmes, un paquet additionnel peut être téléchargé sur https://www.gnu.org/software/gettext/. Si vous utilisez l'implémentation Gettext des bibliothèques C GNU, certains utilitaires nécessiteront le paquet GNU Gettext. Il n'est pas nécessaire dans les autres implémentations.
Vous aurez besoin de OpenSSL, si vous voulez
utiliser du chiffrement pour vos connexions clientes.
OpenSSL est aussi requis pour la génération
de nombres aléatoires sur les plateformes qui n'ont pas
/dev/urandom
(sauf Windows). La version minimale
requise est la 1.0.1.
Vous avez besoin de MIT Kerberos (pour GSSAPI), OpenLDAP, et/ou PAM pour bénéficier de l'authentification en utilisant ces services.
Vous avez besoin de LZ4 si vous voulez disposer de la compression de données avec cette méthode ; voir default_toast_compression et wal_compression.
Vous avez besoin de Zstandard si vous voulez disposer de la compression de données avec cette méthode ; voir wal_compression. La version minimale requise est 1.4.0.
Pour compiler la documentation PostgreSQL, il existe un ensemble de prérequis séparé ; voir Section J.2.
Si vous compilez depuis une arborescence Git et non d'un paquet des sources publié, ou pour faire du développement au niveau serveur, les paquets suivants seront également nécessaires :
GNU Flex et Bison sont nécessaires pour compiler à partir d'un export du Git, ou si vous avez changé les fichiers de définition de l'analyseur ou du « scanner ». Au besoin, les versions nécessaires sont Flex 2.5.35 ou ultérieure et Bison 2.3 ou ultérieure. D'autres programmes lex et yacc ne peuvent pas être utilisés.
Perl 5.14 ou ultérieur est aussi nécessaire pour compiler les sources du Git, ou si vous avez changé les fichiers en entrée pour n'importe laquelle des étapes qui utilisent des scripts Perl. Sous Windows, Perl est nécessaire dans tous les cas. Perl est aussi nécessaire pour lancer certains jeux de tests.
Si vous avez besoin de récupérer un paquet GNU, vous le trouverez sur votre site miroir local de GNU (voir https://www.gnu.org/order/ftp.html pour la liste) ou sur ftp://ftp.gnu.org/gnu/.