14.5. Procédure d'installation

  1. Configuration

    La première étape de la procédure d'installation est de configurer votre arborescence système et de choisir les options qui vous intéressent. Ce qui est fait en exécutant le script configure. Pour une installation par défaut, entrez simplement

    ./configure

    Ce script exécutera de nombreux tests afin de déterminer les valeurs de certaines variables dépendantes du système et de détecter certains aléas relatifs à votre système d'exploitation. Il créera divers fichiers dans l'arborescence de compilation pour enregistrer ce qui a été trouvé (vous pouvez aussi exécuter configure à partir d'un répertoire hors de l'arborescence des sources si vous voulez conserver l'arborescence de compilation séparé).

    La configuration par défaut compilera le serveur et les utilitaires, aussi bien que toutes les applications clientes et interfaces qui requièrent seulement un compilateur C. Tous les fichiers seront installés par défaut sous /usr/local/pgsql.

    Vous pouvez personnaliser les processus de compilation et d'installation en mettant une ou plusieurs options sur la ligne de commande après configure :

    --prefix=PREFIX

    Installe tous les fichiers dans le répertoire PREFIX au lieu du répertoire /usr/local/pgsql. Les fichiers actuels seront installés dans divers sous-répertoires ; aucun fichier ne sera directement installés sous PREFIX.

    Si vous avez des besoins spécifiques, vous pouvez de plus personnaliser les sous-répertoires à l'aide des options suivantes.

    --exec-prefix=EXEC-PREFIX

    Vous pouvez installer les fichiers dépendants de l'architecture dans un répertoire différent, EXEC-PREFIX, de celui donné par PREFIX. Ce qui peut être utile pour partager les fichiers dépendants de l'architecture entre plusieurs machines. Si vous l'omettez, EXEC-PREFIX est égal à PREFIX et les fichiers dépendants seront installés sous la même arborescence que les fichiers indépendants de l'architecture, ce qui est probablement ce que vous voulez.

    --bindir=REPERTOIRE

    Spécifie le répertoire des exécutables. Par défaut, il s'agit de EXEC-PREFIX/bin, ce qui signifie /usr/local/pgsql/bin.

    --datadir=REPERTOIRE

    Prépare le répertoire pour des fichiers de données en lecture seule utilisés par les programmes d'installation. Par défaut, il s'agit de PREFIX/share. Il est bon de noter que cela n'a rien à voir avec l'emplacement des fichiers de votre base de données.

    --sysconfdir=REPERTOIRE

    Le répertoire contenant divers fichiers de configuration. Par défaut, il s'agit de PREFIX/etc.

    --libdir=REPERTOIRE

    L'endroit où installer les bibliothèques et les modules chargeables dynamiquement. Par défaut, il s'agit de EXEC-PREFIX/lib.

    --includedir=REPERTOIRE

    Le répertoire où sont installées les en-têtes C et C++. Par défaut, il s'agit de PREFIX/include.

    --docdir=REPERTOIRE

    Les fichiers de documentation, sauf les pages << man >>, seront installés dans ce répertoire. Par défaut, il s'agit de PREFIX/doc.

    --mandir=REPERTOIRE

    Les pages man fournies avec PostgreSQL seront installées sous ce répertoire, dans leur sous-répertoire manx respectif. Par défaut, il s'agit de PREFIX/man.

    Note : Une attention toute particulière a été prise afin de rendre possible l'installation de PostgreSQL dans des répertoires partagés (comme /usr/local/include) sans interférer avec des noms de fichiers relatifs au reste du système. En premier lieu, le mot << /postgresql >> est automatiquement ajouté au répertoire datadir, sysconfdir et docdir, à moins que le nom du répertoire à partir de la racine contienne déjà le mot << postgres >><< pgsql >>. Par exemple, si vous choisissez /usr/local comme préfixe, la documentation sera installée dans /usr/local/doc/postgresql, mais si le préfixe est /opt/postgres, alors il sera dans /opt/postgres/doc. Les fichiers d'en-têtes publiques C de l'interface cliente seront installés sous includedir et sont propres par rapport aux noms de fichiers relatifs au reste du système. Les fichiers d'en-têtes privés et les fichiers d'en-têtes du serveur sont installés dans des répertoires privés sous includedir. Voir la documentation de chaque interface pour savoir comment obtenir ces fichiers d'en-tête. Enfin, un répertoire privé sera aussi créé si nécessaire sous libdir pour les modules chargeables dynamiquement.

    --with-includes=REPERTOIRES

    REPERTOIRES est une liste de répertoires séparés par des caractères deux points (:) qui sera ajoutée à la liste de recherche des fichiers d'en-tête. Si vous avez des paquetages optionnels (tels que Readline GNU) installés dans des répertoires non conventionnels, vous pouvez utiliser cette option et certainement l'option --with-libraries correspondante.

    Exemple : --with-includes=/opt/gnu/include:/usr/sup/include.

    --with-libraries=REPERTOIRES

    REPERTOIRES est une liste de recherche de répertoires de bibliothèques séparés par des caractères deux points (:). Vous aurez probablement à utiliser cette option (et l'option correspondante --with-includes) si vous avez des paquetages installés dans des répertoires non conventionnels.

    Exemple : --with-libraries=/opt/gnu/lib:/usr/sup/lib.

    --enable-nls[=LANGUES]

    Permet de mettre en place le support des langues natives (NLS). C'est la possibilité d'afficher les messages des programmes dans une langue autre que l'anglais. LANGUE est une liste de codes des langues que vous voulez supporter séparés par un espace. Par exemple, --enable-nls='de fr' (l'intersection entre votre liste et l'ensemble des langues traduites actuellement sera calculée automatiquement). Si vous ne spécifiez pas de liste, alors toutes les traductions disponibles seront installées.

    Pour utiliser cette option, vous avez besoin d'une implémentation de l'API Gettext ; voir après.

    --with-pgport=NUMERO

    Positionne NUMERO comme numéro de port par défaut pour le serveur et les clients. La valeur par défaut est 5432. Le port peut toujours être changé ultérieurement mais, si vous le faites ici, alors les exécutables du serveur et des clients auront la même valeur par défaut, ce qui est vraiment très pratique. Habituellement, la seule bonne raison de choisir une valeur autre que celle par défaut est que vous souhaitez exécuter plusieurs serveurs PostgreSQL sur la même machine.

    --with-perl

    Permet l'utilisation du langage PL/Perl côté serveur.

    --with-python

    Permet la compilation du langage de procédures PL/Python.

    --with-tcl

    Compile les composants demandés par Tcl/Tk, qui sont libpgtcl, pgtclsh, pgtksh, et PL/Tcl. Voir après au sujet de --without-tk.

    --without-tk

    Si vous spécifiez --with-tcl et cette option, alors le programme qui nécessite Tk (pgtksh) sera exclu.

    --with-tclconfig=REPERTOIRE
    --with-tkconfig=REPERTOIRE

    Tcl/Tk installe les fichiers tclConfig.sh et tkConfig.sh, ces fichiers contiennent certaines informations de configuration nécessaires pour compiler le module d'interfaçage avec Tcl ou Tk. Ces fichiers sont normalement trouvés automatiquement à leur place bien connue, mais si vous voulez utiliser une version différente de Tcl ou Tk, vous pouvez spécifier le répertoire où les trouver.

    --with-java

    Compile le pilote JDBC et les paquetages java associés.

    --with-krb4[=REPERTOIRE]
    --with-krb5[=REPERTOIRE]

    Compile le support d'authentification Kerberos. Vous pouvez utiliser soit la version 4 soit la version 5 de Kerberos, mais pas les deux. L'argument REPERTOIRE spécifie le répertoire racine de l'installation de Kerberos. La valeur /usr/athena est prise par défaut. Si les fichiers d'en-tête et bibliothèques correspondants ne sont pas sous un répertoire commun, vous devez utiliser les options --with-includes et --with-libraries en plus de cette option. Si, d'autre part, les fichiers requis sont dans un répertoire qui fait partie de la liste de recherche par défaut (par exemple /usr/lib), alors vous pouvez ne pas tenir compte de cet argument.

    configure cherchera les en-têtes et bibliothèques requis pour s'assurer que votre installation de Kerberos est correcte avant d'effectuer la compilation.

    --with-krb-srvnam=NOM

    Le nom du service principal de Kerberos. postgres est pris par défaut. Il n'y a probablement pas de raison de le changer.

    --with-openssl[=REPERTOIRE]

    Compile le support de connexion SSL (cryptage). Il est nécessaire que le paquetage OpenSSL soit installé. L'argument REPERTOIRE spécifie la racine du répertoire d'installation de OpenSSL ; la valeur par défaut est /usr/local/ssl.

    configure cherchera les en-têtes et bibliothèques requis pour s'assurer que votre installation d'OpenSSL est correcte avant de lancer la compilation.

    --with-pam

    Compile le support PAM (Modules d'Authentification Pluggable).

    --without-readline

    Évite l'utilisation de la bibliothèque Readline. Cela désactive l'édition de la ligne de commande et l'historique dans psql, ce n'est donc pas recommandé.

    --with-rendezvous

    Compile le support Rendezvous.

    --disable-spinlocks

    Autorise le succès de la construction y compris lorsque PostgreSQL n'a pas le support spinlock du CPU pour la plateforme. Ce manque de support résultera en des performances faibles ; du coup, cette option devra seulement être utilisée si la construction échoue et vous informe du manque de support de spinlock sur votre plateforme.

    --enable-thread-safety

    Rend les bibliothèques clientes compatibles avec les threads. Ceci permet des threads concurrents dans les programmes libpq et ECPG ce qui leur permet de gérer en toute sûreté leur connexions privées.

    --without-zlib

    Évite l'utilisation de la bibliothèque Zlib. Cela désactive le support de la compression dans pg_dump. Cette option est seulement là pour les rares systèmes qui ne disposent pas de cette bibliothèque.

    --enable-debogue

    Compile tous les programmes et bibliothèques en mode de débogage. Cela signifie que vous pouvez exécuter les programmes via un débogueur pour analyser les problèmes. Cela grossit considérablement la taille des exécutables et, avec des compilateurs autres que GCC, habituellement, cela désactive les optimisations du compilateur, provoquant des ralentissements. Cependant, mettre ce mode en place est extrêmement utile pour repérer les problèmes. Actuellement, cette option est recommandée pour les installations en production seulement si vous utilisez GCC. Néanmoins, vous devriez l'utiliser si vous développez ou si vous utilisez une version béta.

    --enable-cassert

    Permet la vérification des assertions par le serveur qui teste de nombreux cas de conditions << impossibles >>. Ce qui est inestimable dans le cas de développement, mais les tests ralentissent le système. Activer cette option n'influe pas sur la stabilité de votre serveur ! Les assertions vérifiées ne sont pas classées par ordre de sévérité et il se peut qu'un bogue anodin fasse redémarrer le serveur s'il y a un échec de vérification. Actuellement, cette option n'est pas recommandée dans un environnement de production mais vous devriez l'utiliser lors de développement ou pour les versions béta.

    --enable-depend

    Active la recherche automatique des dépendances. Avec cette option, les fichiers makefile sont appelés pour recompiler les fichiers objet dès qu'un fichier d'en-tête est modifié. C'est pratique si vous faites du développement, mais inutile si vous ne voulez que compiler une fois et installer. Pour le moment, cette option ne fonctionne qu'avec GCC.

    Si vous préférez utiliser un compilateur C différent de ceux listés par configure, alors positionnez la variable d'environnement CC pour qu'elle pointe sur le compilateur de votre choix. Par défaut, configure pointe sur gcc à moins qu'il ne soit celui de la plateforme. De façon similaire, vous pouvez repositionner les options par défaut du compilateur à l'aide de la variable CFLAGS.

    Vous pouvez spécifier les variables d'environnement sur la ligne de commande configure, par exemple :

    ./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'

  2. Compilation

    Pour démarrer la compilation, saisissez

    gmake

    (Rappelez-vous d'utiliser GNU make). La compilation peut prendre entre cinq minutes et une demi-heure en fonction de votre matériel. La dernière ligne affichée devrait être

    All of PostgreSQL is successfully made. Ready to install.

  3. Tests de régression

    Si vous souhaitez tester le serveur nouvellement compileé avant de l'installer, vous pouvez exécuter les tests de régression à ce moment. Les tests de régression sont une suite de tests qui vérifient que PostgreSQL fonctionne sur votre machine tel que les développeurs l'espèrent. Saisissez

    gmake check

    (Cela ne fonctionne pas en tant que root ; faites-le en tant qu'utilisateur sans droits.) Le Chapitre 26 contient des détails sur l'interprétation des résultats de ces tests. Vous pouvez les répéter autant de fois que vous le voulez en utilisant la même commande.

  4. Installer les fichiers

    Note : Si vous mettez à jour une version existante et que vous placez les fichiers au même endroit que les anciens, alors vous devrez sauvegarder vos données et arrêter l'ancien serveur, comme expliqué dans la Section 14.4 ci-après.

    Pour installer PostgreSQL, saisissez

    gmake install

    Cela installera les fichiers dans les répertoires spécifiés dans l'étape 1. Assurez-vous d'avoir les droits appropriés pour écrire dans ces répertoires. Normalement, vous avez besoin d'être superutilisateur pour cette étape. Une alternative consiste à créer les répertoires cibles à l'avance et à leur donner les droits appropriées.

    Vous pouvez utiliser gmake install-strip en lieu et place de gmake install pour dépouiller l'installation des exécutables et des bibliothèques. Cela économise un peu d'espace disque. Si vous avez effectué la compilation en mode de débogage, ce dépouillage l'enlèvera, donc ce n'est à faire seulement si ce mode n'est plus nécessaire. install-strip essaie d'être raisonnable en sauvegardant de l'espace disque mais il n'a pas une connaissance parfaite de la façon de dépouiller un exécutable de tous les octets inutiles. Ainsi, si vous voulez sauvegarder le maximum d'espace disque, vous devrez faire le travail à la main.

    L'installation standard fournit seulement les fichiers en-têtes nécessaires pour le développement d'applications clientes. Si vous prévoyez de faire du développement côté serveur (comme des fonction personnelles ou des types de données écrits en C), alors vous pouvez vouloir installer toute l'arborescence des fichiers d'en-tête de PostgreSQL dans votre répertoire de fichiers d'en-tête d'arrivée. Pour cela, saisissez

    gmake install-all-headers

    Cela ajoute un ou deux mégaoctets à l'installation de base et est utile seulement si vous ne prévoyez pas de conserver toute l'arborescence source comme référence. (Si vous faites cela, vous pouvez n'utiliser que les fichiers en-têtes du répertoire source pour compiler les applicatifs côté serveur.)

    Installation du client uniquement : Si vous ne voulez qu'installer les applications clientes et les bibliothèques d'interface, alors vous pouvez utilisez ces commandes :

    gmake -C src/bin install
    gmake -C src/include install
    gmake -C src/interfaces install
    gmake -C doc install

Désinstallation : Pour désinstaller, utilisez la commandegmake uninstall. Cependant, cela ne supprimera pas les répertoires créés.

Ménage : Après l'installation, vous pouvez faire le ménage en supprimant les fichiers issus de la compilation des répertoires sources à l'aide de la commande gmake clean. Cela conservera les fichiers créés par la commande configure, ainsi vous pourrez tout recompiler ultérieurement avec gmake. Pour remettre l'arborescence source dans l'état initial, utilisez gmake distclean. Si vous voulez effectuer la compilation pour diverses plateformes à partir des mêmes sources vous devrez d'abord refaire la configuration à chaque fois.

Si vous avez compilé et que vous vous êtes rendu compte que les options de configure sont fausses, ou si vous changez quoique ce soit que configure prenne en compte (par exemple, la mise à jour d'applications), alors c'est une bonne idée de faire un gmake distclean avant de reconfigurer et recompiler. Sans ça vos changement dans les choix de configuration ne seront pas répercutés partout où il faut.