Installation de PostgreSQL sur plate-forme Linux

Stessy

Cet article va vous expliquer en détail les différentes étapes nécessaires à l'installation de PostgreSQL sur plate-forme Linux. ♪

- Titre : Installation de PostgreSQL sur plate-forme Linux

- Auteur : Stessy

- Parution : 27 mai 2003

- Mise à jour : 30 décembre 2012

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2003 Stessy. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Prérequis

- II. Création d'un administrateur de PostgreSQL

- III. Installation des sources de PostgreSQL

- IV. Configuration des sources

- V. Compilation des sources

- VI. Tests de régression

- VII. Configuration des variables d'environnement

- VIII. Initialisation et démarrage de PostgreSQL

- IX. Création d'une base de données

I - Prérequis

L'installation de PostgreSQL est facile. Néanmoins certains logiciels sont indispensables pour sa compilation alors que d'autres sont facultatifs.

Voici en détail la liste des logiciels indispensables.

- make : je conseille une version supérieure ou égale à la version 3.76.

- GCC : le compilateur C de GNU.

- gzip : utilitaire de compression et décompression de fichiers.

- tar : utilitaire permettant de regrouper plusieurs fichiers ou répertoires dans une archive unique.

Voici une liste non exhaustive de logiciels facultatifs.

- OpenSSL : PostgreSQL peut l'utiliser pour chiffrer les connexions entre l'application cliente psql et le serveur.

- Tcl/Tk : indispensable pour pouvoir utiliser PgAccess qui est une application d'administration graphique pour PostgreSQL.

- Jdk : indispensable si vous développez en Java pour activer le support JDBC (Java DataBase Connectivity).

II - Création d'un administrateur de PostgreSQL

Vous devez tout d'abord créer un utilisateur qui possèdera et gèrera les droits de PostgreSQL. Pour pouvoir créer l'administrateur de PostgreSQL, vous devez posséder les privilèges de l'utilisateur root. Voici la commande pour ajouter un utilisateur en prenant comme exemple l'utilisateur postgres comme administrateur de PostgreSQL :

su - -c "useradd postgres"

III - Installation des sources de PostgreSQL

Tout d'abord, choisissez un répertoire où vous décompresserez les sources de PostgreSQL. Après avoir placé l'archive dans le répertoire de votre choix, désarchivez-la. Voici la commande pour extraire les fichiers de l'archive :

tar -xvzf postgresql-version.tar.gz

Afin de permettre à l'administrateur de PostgreSQL de compiler les sources lui-même, rendez-le propriétaire de l'arborescence des sources. La commande modifiant le propriétaire des sources est la suivante :

chown -R postgres.postgres postgresql-version

IV - Configuration des sources

Cette section va vous permettre de comprendre les options d'installation correspondant à vos besoins. Pour vous permettre de configurer les sources avant leur compilation, nous allons faire appel à un script qui va également effectuer une vérification des dépendances logicielles. Voici la commande nécessaire pour utiliser ce script :

./configure

Malheureusement cette commande va activer les options de configuration par défaut. Pour connaître toutes les options de compilations fournies avec le script, tapez la commande suivante :

./configure --help

Beaucoup de personnes ne sachant pas à quoi servent exactement ces options, en voici les explications ;

- --with-CXX : vous permettra de construire des applications C++ utilisables avec PostgreSQL ;

- --enable-odbc : permettra aux programmes ayant un pilote ODBC de se connecter à PostgreSQL ;

- --enable-multibyte : permettra l'emploi de caractères multioctets ;

- --with-maxbackends=NOMBRE : où NOMBRE sera le maximum de connexions autorisées ;

- --prefix=PREFIXE : avec cette option vous indiquerez le répertoire, représenté par PREFIXE, où les fichiers seront installés ;

- --exec-prefix=EXEC-PREFIXE : indiquera le répertoire, représenté par EXEC-PREFIXE, où seront installés les fichiers exécutables ;

- --bindir=BINDIR : indiquera le répertoire, représenté par BINDIR, où seront installés les exécutables client.

- --datadir=DATADIR : indiquera le répertoire, représenté par DATADIR, où seront installés les fichiers utilisés par PostgreSQL ;

- --sysconfdir=SYSCONFDIR : indiquera le répertoire, représenté par SYSCONFDIR, où seront installés les fichiers de configuration système ;

- --libdir=LIBDIR : indiquera le répertoire, représenté par LIBDIR, où seront installés les fichiers bibliothèque ;

- --includedir=INCLUDEDIR : indiquera le répertoire, représenté par INCLUDEDIR, où seront installés les fichiers en-têtes C et C++ ;

- --docdir=DOCDIR : indiquera le répertoire, représenté par DOCDIR, où seront installés les fichiers de documentation ;

- --mandir=MANDIR : indiquera le répertoire, représenté par MANDIR, où seront installés les fichiers man ;

- --with-includes=INCLUDES : indiquera la liste des répertoires, représentés par DATADIR et séparés par deux points, à parcourir lors de la recherche des fichiers en-tête ;

- --with-libraries=LIBRARIES : indiquera la liste de répertoires, représentés par LIBRARIES et séparés par deux points, à parcourir lors de la recherche des bibliothèques ;

- --enable-locale : active le support des locales.
Option à conseiller uniquement dans des environnements où la langue parlée n'est pas l'anglais, car elle ralentit les performances ;

- --enable-recode : activera la bibliothèque de traduction des caractères ;

- --enable-multibyte : activera l'encodage multioctet pur utiliser les caractères non ASCII. Principalement pour les langues asiatiques ;

- --with-pgport=NUMERO : indiquera le port par défaut, représenté par NUMERO, utilisé par PostgreSQL ;

- --with-perl : compilera le module d'interface Perl à l'installation.
Option nécessaire uniquement si vous utilisez pl/Perl comme langage de procédures ;

- --with-python : identique à l'option --with-perl mais pour pl/Python comme langage de procédures ;

- --with-tcl : identique à l'option --with-perl mais pour pl/Tcl comme langage de procédures ;

- --without-tk : compilera le support Tcl sans Tk ;

- --with-odbcinst=ODBCINST : indiquera le répertoire, représenté par ODBCINST, où le pilote ODBC devra chercher après son fichier de configuration ;

- --with-krb4=KRB4 : active le support du système d'authentification Kerberos ;

- --with-openssl=OPENSSL : activera l'utilisation de SSL et indiquera le répertoire, représenté par OPENSSL, où seront installés les fichiers OpenSSL ;

- --with-java : activera le support JDBC ;

- --enable-syslog : activera le démon de journalisation syslog ;

- --enable-debug : utile uniquement aux développeurs pour diagnostiquer les bugs ;

- --enable-cassert : utilisée uniquement pour le développement de PostgreSQL, car elle ralentit les performances.

V - Compilation des sources

Étape qui suit la configuration des sources.
Voici la commande pour lancer la compilation des sources

make ou gmake (pour les systèmes bsd)

VI - Tests de régression

Étape consistant à installer les binaires fraîchement compilés ainsi que les fichiers de données.

Commande utilisée pour installer les binaires et les fichiers de données :

su -c "make install"

Commande utilisée maintenant pour rendre l'administrateur de PostgreSQL propriétaire des répertoires d'installation de PostgreSQL.

su -c "chown -R postgres.postgres /répertoire/d'installation/des/fichiers"

Attention : pour ces 2 commandes, le mot de passe root sera demandé.

VII - Configuration des variables d'environnement

Étape consistant à faciliter l'exécution de certaines tâches.
Voici les différentes instructions à ajouter dans le fichier /etc/profile :

PATH=$PATH:/répertoire/des/binaires/PostreSQL
MANPATH=$MANPATH:/repertoire/des/pages/man
export PATH MANPATH

La prochaine étape consiste à configurer la variable d'environnement LD_LIBRARY_PATH pour qu'elle pointe vers le répertoire où ont été installées les bibliothèques partagées.

Voici la commande à lancer pour configurer cette variable.

Bourne Shel l :

LD_LIBRARY_PATH=/répertoire/des/bibliothèques
export LD_LIBRARY_PATH

C Shell :

setenv LD_LIBRARY_PATH /répertoire/des/bibliothèques

VIII - Initialisation et démarrage de PostgreSQL

Après l'initialisation on pourra démarrer le serveur proprement dit.

Commande utilisée pour initialiser la base de données :

/répertoire/des/binaires/postgresql/initdb -D /répertoire/choisi/pour/la/base

Deux commandes peuvent être utilisées pour le lancement de PostgreSQL

1re commande :

/répertoire/des/binaires/postgresql/postmaster -D /répertoire/choisi/pour/la/base -i

Cette commande lancera postmaster au premier plan, c'est-à-dire que l'invite de shell restera inaccessible tant que l'on n'aura pas tapé les touches Ctrl-C pour mettre fin au processus.

Une deuxième commande généralement conseillée lancera le processus en arrière-plan et permettra par la même occasion de rediriger les informations de débogage vers un fichier.

2e commande :

/répertoire/des/binaires/postgresql/pg_ctl -D /répertoire/choisi/pour/la/base -o "-i" -l /tmp/pgsql.log start

Pour arrêter le postmaster la commande sera quasiment identique à la précédente à part que vous devrez remplacer l'instruction start par l'instruction stop.

Commande d'arrêt du serveur :

/répertoire/des/binaires/postgresql/pg_ctl -D /répertoire/choisi/pour/la/base -l /tmp/pgsql.log stop

IX - Création d'une base de données

Maintenant que PostgreSQL est lancé, nous pouvons créer une nouvelle base de données.

Voici la commande pour la création d'une nouvelle base :

createdb nom_de_la_nouvelle_base

Nous pouvons dès à présent utiliser l'interface en ligne de commande de PostgreSQL

Commande utilisée pour lancer psql :

psql nom_de_la_nouvelle_base