PostgreSQLLa base de données la plus sophistiquée au monde.

14.2. Prérequis

En général, les plateformes style unix modernes doivent être capables d'exécuter PostgreSQL™. Les plateformes sur lesquelles des tests ont été effectuées sont listées dans la Section 14.9, « Plateformes supportées » ci-après. Dans le répertoire doc de la distribution, il y a plusieurs FAQ spécifiques à des plateformes particulières que vous pouvez consulter si vous avez des problèmes.

Les logiciels suivants sont nécessaires pour compiler PostgreSQL™ :

  • GNU make est nécessaire ; les autres programmes make ne devraient pas fonctionner. GNU make est souvent installé sous le nom gmake ; ce document fera toujours référence à lui sous ce nom (sur certains système, GNU make est l'outil par défaut et est nommé make). Pour savoir quelle version vous utilisez, saisissez

    gmake --version
    

    Il est recommandé d'avoir une version postérieure à la version 3.76.1.

  • Il est nécessaire d'avoir un compilateur C ISO/ANSI. Une version récente de GCC™ est recommandée mais PostgreSQL™ est connu pour être compilable avec de nombreux compilateurs de divers vendeurs.

  • tar est requis pour déballer la distribution des sources avec soit gzip soit bzip2.

  • La bibliothèque GNU Readline™ est utilisée par défaut (pour une édition facile des lignes et une recherche de l'historique des commandes). Si vous ne voulez pas l'utiliser, il vous faut spécifier --without-readline au moment d'exécuter la commande configure. Une alternative possible est l'utilisation de la bibliothèqe libedit sous license BSD, développée au début 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 --with-libedit-preferred est utilisé sur la ligne de commande de configure. Si vous utilisez une distribution Linux basée sur des paquetages, faites attention au fait que vous aurez besoin à la fois des paquetages readline et readline-devel s'ils sont séparés dans votre distribution.

  • La bibliothèque de compression zlib™ sera utilisée par défaut. Si vous ne voulez pas l'utiliser, alors vous devez spécifier l'option --without-zlib à configure. Utiliser cette option désactive le support des archives compressées dans pg_dump et pg_restore.

  • Des logiciels supplémentaires sont nécessaires pour construire PostgreSQL™ sur Windows™. Vous pouvez construire PostgreSQL™ pour les versions NT™ de Windows™ (comme Windows XP et 2003) en utilisant MinGW™ ; voir doc/FAQ_MINGW pour les détails. Vous pouvez aussi construire PostgreSQL™ en utilisant Cygwin™ ; voir doc/FAQ_CYGWIN. Une construction basée sur Cygwin™ fonctionnera sur les anciennes versions de Windows™ mais, si vous avez le choix, nous vous recommandons l'approche de MinGW™. Bien qu'il soit le seul ensemble d'outils recommandé pour une construction complète, il est possible de construire seulement la bibliothèque cliente C (libpq) et le terminal interactif (psql) en utilisant d'autres environnements de développement sous Windows™. Pour des détails, voir le Chapitre 15, Installation sur Windows du seul client.

Les paquetages suivants sont optionnels. Ils ne sont pas obligatoires pour une compilation par défaut mais le sont lorsque certaines options sont utilisées ainsi que c'est expliqué par la suite.

  • Pour installer le langage de procédures PL/Perl, vous devez avoir une installation de Perl™ complète, comprenant la bibliothèque libperl et les fichiers d'en-tête. Comme PL/Perl est une bibliothèque partagée, la bibliothèque libperl doit aussi être partagée sur la plupart des plateformes. Ce qui n'est le cas que dans les versions récentes de Perl™ et, dans tous les cas, c'est le choix de ceux qui installent Perl. 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).

    Si vous n'avez pas de bibliothèque partagée alors qu'il vous en faut une, un message tel que celui-ci apparaîtra durant la compilation pour vous en avertir :

    *** 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.
    

    (Si vous ne suivez pas la sortie écran, vous pourrez constater que la bibliothèque plperl.so de PL/Perl, ou similaire, n'est pas installée.) Si c'est le cas, il vous faudra recompiler et ré-installer Perl™ manuellement pour être capable de compiler PL/Perl. Lors de la phase de configuration de Perl™, demandez que les bibliothèques soient partagées.

  • Pour compiler le langage de procédures PL/Python, il faut que Python™ soit installé avec les fichiers d'en-tête et le module distutils. Le module distutils est inclus par défaut avec Python™ 1.6 et les versions suivantes ; les utilisateurs des versions précédentes de Python™ auront besoin de l'installer.

    Puisque PL/Python devra ê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 pour une installation par défaut de Python. Si, après la compilation et l'installation, vous avez un fichier nommé plpython.so (des extensions différentes sont possibles), alors tout va pour le mieux. Sinon, vous devriez avoir vu un avertissement semblable à :

    *** 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.
    

    Ce qui signifie que vous devez recompiler Python™ (ou une partie) pour activer cette bibliothèque partagée.

    Si vous avez des problèmes, lancez le configure de Python™ 2.3 ou d'une version suivante en utilisant le commutateur --enable-shared. Sur certains systèmes d'exploitation, vous n'avez pas besoin de construire une bibliothèque partagée mais vous devrez convaincre le système de construction de PostgreSQL™ sur ce point. Consultez le fichier Makefile dans le répertoire src/pl/plpython pour des détails supplémentaires.

  • Si vous voulez construire le langage de procédure PL/Tcl, vous avez besoin que Tcl soit installé.

  • Pour activer le support de langage natif (NLS), qui permet d'afficher les messages dans une langue autre que l'anglais, vous avez besoin d'une implémentation de l'API Gettext. Certains systèmes d'exploitation l'ont intégré (par exemple, Linux, NetBSD, Solaris). Pour les autres systèmes, vous pouvez télécharger les paquetages nécessaires sur http://developer.postgresql.org/~petere/bsd-gettext. Si vous utilisez l'implémentation de Gettext des bibliothèques C GNU, vous devrez en plus utiliser le paquetage GNU Gettext™ pour certains utilitaires. Pour toutes les autres implémentations, vous n'en avez pas besoin.

  • Kerberos, OpenSSL™, OpenLDAP™ ou PAM si vous voulez une authentification ou un chiffrement en utilisant ces services.

Si vous compilez à partir d'une arborescence Git™ au lieu d'utiliser un paquetage contenant les sources, ou si vous faites du développement au niveau serveur, vous aurez aussi besoin des paquetages suivants :

  • GNU Flex et Bison sont nécessaires pour compiler à partir d'une récupération du Git ou si vous modifiez les fichiers de recherche et d'analyse. Si vous en avez besoin, vérifiez que vous avez Flex 2.5.4 ou postérieur et Bison 1.875 ou postérieur. D'autres programmes yacc peuvent parfois d'être utilisés, ce qui n'est pas recommandé vu les efforts supplémentaires que cela demande. D'autres programmes lex ne fonctionneront définitivement pas.

Si vous avez besoin de paquetages GNU, vous pourrez les trouver sur un site miroir de GNU (voir http://www.gnu.org/order/ftp.html pour en avoir la liste) ou sur ftp://ftp.gnu.org/gnu/.

Vérifiez aussi que vous avez assez d'espace disque de disponible. Il vous faudra 65 Mo pour l'espace de compilation et 15 Mo pour le répertoire d'installation. Une base de données vide en cluster nécessite 25 Mo, les fichiers de la base prenant cinq fois plus d'espace que des fichiers texte contenant les mêmes données. Si vous voulez faire des tests de régression, vous aurez besoin temporairement de 90 Mo supplémentaires. Utilisez la commande df pour vérifier l'espace disque.