Documentation PostgreSQL 8.2.7

The PostgreSQL Global Development Group


Chapitre�1.�Proc�dure d'installation de PostgreSQL

Ce document d�crit l'installation de PostgreSQL™ � partir du code source (si vous installez une distribution pr�par�e, tels qu'un paquetage RPM ou Debian, vous pouvez ignorer ce document et lire � la place les instructions du mainteneur du paquetage).

1.1.�Version courte

./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test

Le reste du document est la version longue.

1.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�1.8, ��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-zlibconfigure. 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 le chapitre �Installation sur Windows™ du seul client � de la documentation.

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 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 CVS au lieu d'utiliser un paquetage contenant les sources, ou si vous faites du d�veloppement, vous aurez aussi besoin des paquetages suivants :

  • GNU Flex et Bison sont n�cessaires pour compiler � partir d'une r�cup�ration du CVS 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.

1.3.�Si vous effectuez une mise � jour

Le format de stockage interne des donn�es a chang� avec cette nouvelle version de PostgreSQL™. Toutefois, si vous faites une mise � jour qui n'a pas un num�ro de version de la forme ��8.2.x��, vous devrez faire une sauvegarde et une restauration des donn�es ainsi que c'est montr� ici. Les instructions consid�rent que votre installation existante est dans le r�pertoire /usr/local/pgsql et que la zone de donn�es est dans /usr/local/pgsql/data. Remplacez les chemins de fa�on appropri�.

  1. Assurez-vous que vos donn�es ne sont pas mises � jour pendant ou apr�s la sauvegarde. Cela n'affecterait en rien l'int�grit� de la sauvegarde mais les donn�es modifi�es ne seraient pas incluses. Si n�cessaire, �ditez le fichier /usr/local/pgsql/data/pg_hba.conf (ou �quivalent) pour verrouiller tous les acc�s sauf les v�tres.

  2. Pour effectuer une sauvegarde de votre base, saisissez :

    pg_dumpall > fichierdesortie
    

    Si vous souhaitez conserver les identifiants d'objets (lorsqu'ils sont utilis�s comme cl� �trang�re), utilisez l'option -o lors de l'ex�cution de pg_dumpall.

    Pour effectuer une sauvegarde, vous pouvez ex�cuter la commande pg_dumpall incluse dans la distribution de votre version actuelle. Cependant, pour de meilleurs r�sultats, essayez d'utiliser la commande pg_dumpall contenue dans PostgreSQL™ 8.2.7 puisqu'elle corrige les erreurs des versions pr�c�dentes. Ce conseil est absurde tant que vous n'avez pas encore install� la nouvelle version. Il devient valable si vous souhaitez installer la nouvelle version en parall�le. Dans ce cas, vous pouvez faire l'installation normalement et ne transf�rer les donn�es qu'apr�s, ce qui r�duira le temps d'indisponibilit�.

  3. Si vous installez la nouvelle version � la place de l'ancienne, arr�tez l'ancien serveur, au plus tard avant d'installer les nouveaux fichiers :

    pg_ctl stop
    

    Sur les syst�mes qui lancent PostgreSQL™ au d�marrage, il y a probablement un fichier de d�marrage qui peut faire la m�me chose. Par exemple, sur un syst�me Red Hat Linux, la commande

    /etc/rc.d/init.d/postgresql stop
    

    devrait fonctionner. Une autre possibilit� est pg_ctl stop.

  4. Si vous faites l'installation au m�me endroit que l'ancienne, il peut �tre une bonne id�e de d�placer l'ancienne version au cas o� vous auriez des probl�mes et que vous ayez besoin de revenir en arri�re. Utilisez une commande telle que :

    mv /usr/local/pgsql /usr/local/pgsql.old
    

Apr�s l'installation de PostgreSQL™ 8.2.7, cr�ez un r�pertoire pour les donn�es et d�marrez le nouveau serveur. Rappelez-vous que vous devez ex�cuter ces commandes en �tant connect� avec l'utilisateur d�di� � la base (qui doit d�j� exister si vous changez juste de version).

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

Enfin, restaurez vos donn�es avec

/usr/local/pgsql/bin/psql -d postgres -f outputfile

en utilisant le nouveau psql.

Des informations suppl�mentaires apparaissent dans la documentation que vous �tes encourag�s � lire dans tous les cas.

1.4.�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 personnaliser les sous-r�pertoires � l'aide des options suivantes. N�anmoins, si vous les laissez vide avec leurs valeurs par d�faut, l'installation sera d�pla�able, ce qui signifie que vous pourrez bouger le r�pertoire apr�s installation (les emplacements de man et doc ne sont pas affect�s par ceci).

    Pour les installations d�pla�ables, vous pourriez vouloir utiliser l'option --disable-rpath de configure. De plus, vous aurez besoin d'indiquer au syst�me d'exploitation comment trouver les biblioth�ques partag�es.

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

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

    --with-docdir=REPERTOIRE, --without-docdir

    Les fichiers de documentation, sauf les pages ��man��, seront install�s dans ce r�pertoire. Par d�faut, il s'agit de PREFIX/doc. Si l'option --without-docdir est sp�cifi�e, la documentation ne sera pas install�e par make install. Ceci est fait pour aider les scripts d'empaquetage ayant des m�thodes particuli�res pour installer la documentation.

    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�� o� ��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 de proc�dures PL/Perl c�t� serveur.

    --with-python

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

    --with-tcl

    Permet la compilation du langage de proc�dures PL/Tcl.

    --with-tclconfig=REPERTOIRE

    Tcl installe les fichiers tclConfig.sh, contenant certaines informations de configuration n�cessaires pour compiler le module d'interfa�age avec Tcl. Ce fichier est trouv� automatiquement mais, si vous voulez utiliser une version diff�rente de Tcl, vous pouvez sp�cifier le r�pertoire o� le trouver.

    --with-krb5

    Compile le support d'authentification de Kerberos 5. Sur beaucoup de syst�mes, le syst�me Kerberos n'est pas install� � un emplacement recherch� par d�faut (c'est-�-dire /usr/include, /usr/lib), donc vous devez utiliser les options --with-includes et --with-libraries en plus de cette option. configure v�rifiera les fichiers d'en-t�te et les biblioth�ques requis pour s'assurer que votre installation Kerberos est suffisante avant de continuer

    --with-krb-srvnam=NOM

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

    --with-openssl

    Compile le support de connexion SSL (chiffrement). Le paquetage OpenSSL™ doit �tre install�. configure v�rifiera que les fichiers d'en-t�te et les biblioth�ques soient install�s pour s'assurer que votre installation d'OpenSSL™ est suffisante avant de continuer.

    --with-pam

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

    --with-ldap

    Demande l'ajout du support de LDAP pour l'authentification et la recherche des param�tres de connexion (voir la documentation sur l'authentification des clients et libpq). Sur Unix, cela requiert l'installation du paquet OpenLDAP™. configure v�rifiera l'existence des fichiers d'en-t�te et des biblioth�ques requis pour s'assurer que votre installation d'OpenLDAP™ est suffisante avant de continuer. Sur Windows, la biblioth�que WinLDAP™ est utilis�e par d�faut.

    --without-readline

    �vite l'utilisation de la biblioth�que Readline (et de celle de libedit). Cela d�sactive l'�dition de la ligne de commande et l'historique dans psql, ce n'est donc pas recommand�.

    --with-libedit-preferred

    Favorise l'utilisation de la biblioth�que libedit (sous licence BSD) plut�t que Readline (GPL). Cette option a seulement un sens si vous avez install� les deux biblioth�ques ; dans ce cas, par d�faut, Readline est utilis�.

    --with-bonjour

    Compile le support de Bonjour. Ceci requiert le support de Bonjour dans votre syst�me d'exploitation. Recommand� sur Mac OS X.

    --enable-integer-datetimes

    Utilise le stockage des entiers sur 64 bits pour les types datetime et interval plut�t que le stockage par d�faut en virgule flottante. Ceci r�duit le nombre de valeurs repr�sentatives mais garantit une pr�cision � la microseconde sur toute l'�chelle de valeurs (voir la la documentation sur les types de donn�es date et heure pour plus d'informations). Notez aussi que le code de datetime au format entier est plus r�cent que celui au format en virgule flottante et que nous d�couvrons encore des bogues de temps en temps.

    --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. Si cette option est requise pour construire PostgreSQL™ sur votre plateforme, merci de rapporter le probl�me aux d�veloppeurs de PostgreSQL™.

    --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. Cette option requiert un support ad�quat des threads sur votre syst�me d'exploitation.

    --without-zlib

    �vite l'utilisation de la biblioth�que Zlib. Cela d�sactive le support des archives compress�es dans pg_dump et pg_restore. Cette option est seulement l� pour les rares syst�mes qui ne disposent pas de cette biblioth�que.

    --enable-debug

    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.

    --enable-dtrace

    Compile avec le support de l'outil de trace dynamique, DTrace. Le seul syst�me d'exploitation supportant DTrace pour l'instant est Solaris.

    Pour pointer vers le programme dtrace, la variable d'environnement DTRACE doit �tre configur�e. Ceci sera souvent n�cessaire car dtrace est typiquement install� sous /usr/sbin, qui pourrait ne pas �tre dans le chemin. Des options suppl�mentaires en ligne de commande peuvent �tre indiqu�es dans la variable d'environnement DTRACEFLAGS pour le programme dtrace.

    Pour inclure le support de DTrace dans un ex�cutable 64-bit, ajoutez l'option DTRACEFLAGS="-64" pour configure. Par exemple, en utilisant le compilateur GCC :

    ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
    

    En utilisant le compilateur de Sun :

    ./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' ...
    

    Si vous pr�f�rez utiliser un compilateur C diff�rent de ceux list�s par configure, positionnez la variable d'environnement CC pour qu'elle pointe sur le compilateur de votre choix. Par d�faut, configure pointe sur gcc s'il est disponible, sinon il utilise celui par d�faut de la plateforme (habituellement cc). 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'
    

    Voici une liste des variables importantes qui sont configurables de cete fa�on :

    CC

    compilateur C

    CFLAGS

    options � passer au compilateur C

    CPP

    pr�processeur C

    CPPFLAGS

    options � passer au pr�processeur C

    DTRACE

    emplacement du programme dtrace

    DTRACEFLAGS

    options � passer au programme dtrace

    LDFLAGS

    options � passer � l'�diteur de liens

    LDFLAGS_SL

    options de l'�diteur de liens pour la cr�ation des liens des biblioth�ques partag�es

    MSGFMT

    programme msgfmt pour le support des langues

    PERL

    chemin complet vers l'interpr�teur Perl. Il sera utilis� pour d�terminer les d�pendances pour la construction de PL/Perl.

    PYTHON

    chemin complet vers l'interpr�teur Python. Il sera utilis� pour d�terminer les d�pendances pour la construction de PL/Python.

    TCLSH

    chemin complet vers l'interpr�teur Tcl. Il sera utilis� pour d�terminer les d�pendances pour la construction de PL/Tcl.

    YACC

    programme Yacc (bison -y si utilisation de Bison)

  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 fichier src/test/regress/README et la documentation contiennent 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, assurez-vous d'avoir sauvegard� vos donn�es et arr�t� l'ancien serveur avant de continuer, comme l'explique la Section�1.3, ��Si vous effectuez une mise � jour�� 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 ainsi que pour le d�veloppement de programmes c�t� serveur comme des fonction personnelles ou des types de donn�es �crits en C (avant PostgreSQL™ 8.0, une commande gmake install-all-headers s�par�e �tait n�cessaire pour ce dernier point mais cette �tape a �t� int�gr�e � l'installation standard).

    Installation du client uniquement :� Si vous voulez uniquement 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
    

    src/bin comprend quelques ex�cutables utilis�s seulement par le serveur mais ils sont petits.

Enregistrer eventlog sur Windows :� Pour enregistrer une biblioth�que eventlog sur Windows gr�ce au syst�me d'exploitation, ex�cutez cette commande apr�s l'installation :

regsvr32 pgsql_library_directory/pgevent.dll

Ceci cr�e les entr�es du registre utilis�es par le visualisateur d'�v�nements.

D�sinstallation :� Pour d�sinstaller, utilisez la commande gmake 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 (autrement, utilisez un r�pertoire de construction s�par� pour chaque plateforme, de fa�on � ce que le r�pertoire des sources reste inchang�).

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 faire un gmake distclean avant de reconfigurer et recompiler est une bonne id�e. Sans �a, vos changements dans la configuration ne seront pas r�percut�s partout o� il faut.

1.5.�Initialisation post-installation

1.5.1. Biblioth�ques partag�es

Sur certains syst�mes qui utilisent les biblioth�ques partag�es (ce que font de nombreux syst�mes), vous avez besoin de leurs sp�cifier comment trouver les nouvelles biblioth�ques partag�es. Les syst�mes sur lesquels ce n'est pas n�cessaire comprennent BSD/OS, FreeBSD, HP-UX, IRIX, Linux, NetBSD, OpenBSD, Tru64 UNIX (formellement Digital UNIX) et Solaris.

La m�thode pour le faire varie selon la plateforme, mais la m�thode la plus r�pandue consiste � positionner des variables d'environnement comme LD_LIBRARY_PATH : avec les shells Bourne (sh, ksh, bash, zsh)

LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH

ou en csh ou tcsh

setenv LD_LIBRARY_PATH /usr/local/pgsql/lib

Remplacez /usr/local/pgsql/lib par la valeur donn�e � --libdir dans l'�tape 1. Vous pouvez mettre ces commandes dans un script de d�marrage tel que /etc/profile ou ~/.bash_profile. Certaines informations pertinentes au sujet de mises en garde associ�es � cette m�thode peuvent �tre trouv�es sur http://www.visi.com/~barr/ldpath.html.

Sur certains syst�mes, il peut �tre pr�f�rable de renseigner la variable d'environnement LD_RUN_PATH avant la compilation.

Avec Cygwin, placez le r�pertoire des biblioth�ques dans la variable PATH ou d�placez les fichiers .dll dans le r�pertoire bin.

En cas de doute, r�f�rez-vous aux pages de man de votre syst�me (peut-�tre ld.so ou rld). Si vous avez ult�rieurement un message tel que

psql: error in loading shared libraries
libpq.so.2.1: cannot open shared object file: No such file or directory

alors cette �tape est vraiment n�cessaire. Faites-y attention.

Si votre syst�me d'exploitation est BSD/OS, Linux ou SunOS 4 et que vous avez les acc�s de superutilisateur, vous pouvez ex�cuter

/sbin/ldconfig /usr/local/pgsql/lib

(ou le r�pertoire �quivalent) apr�s l'installation pour permettre � l'�diteur de liens de trouver les biblioth�ques partag�es plus rapidement. R�f�rez-vous aux pages man portant sur ldconfig pour plus d'informations. Pour les syst�mes d'exploitation FreeBSD, NetBSD et OpenBSD, la commande est

/sbin/ldconfig -m /usr/local/pgsql/lib

Les autres syst�mes d'exploitation ne sont pas connus pour avoir de commande �quivalente.

1.5.2. Variables d'environnement

Si l'installation a �t� r�alis�e dans /usr/local/pgsql ou � un autre endroit qui n'est pas dans les r�pertoires contenant les ex�cutables par d�faut, vous devez ajouter /usr/local/pgsql/bin (ou le r�pertoire fourni � --bindir au moment de l'�tape 1) dans votre PATH. Techniquement, ce n'est pas une obligation mais cela rendra l'utilisation de PostgreSQL™ plus confortable.

Pour ce faire, ajoutez ce qui suit dans le fichier d'initialisation de votre shell, par exemple ~/.bash_profile (ou /etc/profile, si vous voulez que tous les utilisateurs l'aient) :

PATH=/usr/local/pgsql/bin:$PATH
export PATH

Si vous utilisez le csh ou le tcsh, alors utilisez la commande :

set path = ( /usr/local/pgsql/bin $path )

Pour que votre syst�me trouve la documentation man, il vous faut ajouter des lignes telles que celles qui suivent � votre fichier d'initialisation du shell, � moins que vous installiez ces pages dans un r�pertoire o� elles sont mises normalement.

MANPATH=/usr/local/pgsql/man:$MANPATH
export MANPATH

Les variables d'environnement PGHOST et PGPORT indiquent aux applications clientes l'h�te et le port du serveur de base. Elles surchargent les valeurs utilis�es lors de la compilation. Si vous ex�cutez des applications clientes � distance, alors c'est plus pratique si tous les utilisateurs peuvent param�trer PGHOST. Ce n'est pas une obligation, cependant, la configuration peut �tre communiqu�e via les options de lignes de commande � la plupart des programmes clients.

1.6.�D�marrer

La suite est un r�sum� rapide de la fa�on de faire fonctionner PostgreSQL™ une fois l'installation termin�e. La documentation principale contient plus d'informations.

  1. Cr�er un compte utilisateur pour le serveur PostgreSQL™. C'est cet utilisateur qui fera d�marrer le serveur. Pour un usage en production, vous devez cr�er un compte sans droits (��postgres�� est habituellement utilis�). Si vous n'avez pas les acc�s superutilisateur ou si vous voulez juste regarder, votre propre compte utilisateur est suffisant. Mais, utiliser le compte superutilisateur pour d�marrer le serveur est risqu� (au point de vue s�curit�) et ne fonctionnera pas.

    adduser postgres
    
  2. Faire l'installation de la base de donn�es avec la commande initdb. Pour ex�cuter initdb, vous devez �tre connect� sur votre serveur avec le compte PostgreSQL™. Cela ne fonctionnera pas avec le compte superutilisateur.

    root# mkdir /usr/local/pgsql/data
    root# chown postgres /usr/local/pgsql/data
    root# su - postgres
    postgres$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    

    L'option -D sp�cifie le r�pertoire o� les donn�es seront stock�es. Vous pouvez utiliser le chemin que vous voulez, il n'a pas � �tre sous le r�pertoire de l'installation. Avant de lancer initdb, assurez-vous que le compte serveur peut �crire dans ce r�pertoire (ou le cr�er s'il n'existe pas), comme c'est montr� ici.

  3. L'�tape pr�c�dente vous a indiqu� comment d�marrer le serveur de base. Maintenant, faites-le. La commande doit ressembler �

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    

    Cela d�marrera le serveur en avant-plan. Pour le mettre en arri�re plan faites quelque chose comme

    nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data \
        </dev/null >>server.log 2>&1 </dev/null &
    

    Pour arr�ter le serveur fonctionnant en arri�re-plan, vous pouvez saisir

    kill `cat /usr/local/pgsql/data/postmaster.pid`
    
  4. Cr�er une base de donn�es :

    createdb testdb
    

    Ensuite, entrez

    psql testdb
    

    pour vous connecter � la base. � l'invite, vous pouvez saisir des commandes SQL et commencer l'exp�rimentation.

1.7.�Et maintenant ?

  • La distribution de PostgreSQL™ comprend un document compr�hensible que vous devriez lire de temps en temps. Apr�s l'installation, le document peut �tre lu en faisant pointer votre navigateur internet sur /usr/local/pgsql/doc/html/index.html, except� si vous avez chang� les r�pertoires d'installation.

    Le premier chapitre de la documentation est un tutoriel qui devrait �tre votre premi�re lecture si vous �tes nouveau dans le monde des bases de donn�es SQL. Si vous �tes familier avec les concepts des bases de donn�es, alors vous voudrez commencer avec la partie administration du serveur qui contient des informations sur la fa�on de mettre en place le serveur de base, les bases des utilisateurs et l'authentification.

  • Normalement, vous voudrez faire en sorte que le serveur de base d�marre automatiquement au boot de la machine. Pour ce faire, quelques suggestions se trouvent dans la documentation.

  • Faire les tests de r�gression sur le serveur install� (en utilisant gmake installcheck). Si vous ne l'avez pas fait auparavant, vous devriez d�finitivement le faire maintenant. C'est aussi expliqu� dans la documentation.

  • Par d�faut, PostgreSQL™ est configur� pour fonctionner sur un mat�riel mimimal. Ceci lui permet de fonctionner sur pratiquement toutes les configurations mat�rielles. N�anmoins, la configuration par d�faut n'est pas con�ue pour des performances optimales. Pour disposer des meilleures performances, plusieurs param�tres serveurs doivent �tre ajust�s, les deux plus communs �tant shared_buffers et work_mem. Les autres param�tres mentionn�s dans la documentation affectent aussi les performances.

1.8.�Plateformes support�es

La communaut� de d�veloppeurs a v�rifi� que PostgreSQL™ fonctionne sur les plateformes list�es ci-apr�s. Dire qu'une plateforme est support�e signifie en g�n�ral que la compilation et l'installation de PostgreSQL™ peuvent s'ex�cuter en suivant les instructions et que les tests de r�gression sont valides. Les entr�es ��Ferme de construction�� font r�f�rence aux machines de tests actives dans la ferme de construction PostgreSQL (PostgreSQL Ferme de construction). Les entr�es de plateformes affichant une version plus ancienne de PostgreSQL sont celles qui n'ont pas re�u de tests explicites au moment de la sortie de la version 8.2 mais qui doivent toujours fonctionner.

Note

Si vous avez des probl�mes avec une installation sur une plateforme support�e, veuillez �crire � ou � et non aux personnes list�es dans ce document.

Syst�me d'exploitation Processeur Version Date du rapport Remarques
AIX PowerPC 8.2.0 Fermes de construction grebe (5.3, gcc 4.0.1) ; kookaburra (5.2, cc 6.0) ; asp (5.2, gcc 3.3.2) Voir doc/FAQ_AIX, tout particuli�rement si vous utilisez AIX 5.3 ML3
AIX RS6000 8.0.0 Hans-J�rgen Sch�nig (), 2004-12-06 Voir doc/FAQ_AIX
BSD/OS x86 8.1.0 Bruce Momjian (), 2005-10-26 4.3.1
Debian GNU/Linux Alpha 8.2.0 Ferme de construction hare (3.1, gcc 3.3.4)
Debian GNU/Linux AMD64 8.2.0 Fermes de construction shad (4.0, gcc 4.1.2); kite (3.1, gcc 4.0); panda (sid, gcc 3.3.5)
Debian GNU/Linux ARM 8.2.0 Ferme de construction penguin (3.1, gcc 3.3.4)
Debian GNU/Linux Athlon XP 8.2.0 Ferme de construction rook (3.1, gcc 3.3.5)
Debian GNU/Linux IA64 8.2.0 Ferme de construction dugong (unstable, icc 9.1.045)
Debian GNU/Linux m68k 8.0.0 No�l K�the (), 2004-12-09 sid
Debian GNU/Linux MIPS 8.2.0 Ferme de construction otter (3.1, gcc 3.3.4)
Debian GNU/Linux MIPSEL 8.2.0 Fermes de construction lionfish (3.1, gcc 3.3.4); corgi (3.1, gcc 3.3.4)
Debian GNU/Linux PA-RISC 8.2.0 Fermes de construction manatee (3.1, gcc 4.0.1); kingfisher (3.1, gcc 3.3.5)
Debian GNU/Linux PowerPC 8.0.0 No�l K�the (), 2004-12-15 sid
Debian GNU/Linux Sparc 8.1.0 Ferme de construction dormouse (3.1, gcc 3.2.5; 64-bit)
Debian GNU/Linux x86 8.2.0 Ferme de construction wildebeest (3.1, gcc 3.3.5)
Fedora Linux AMD64 8.2.0 Fermes de construction impala (FC6, gcc 4.1.1); bustard (FC5, gcc 4.1.0); wasp (FC5, gcc 4.1.0); viper (FC3, gcc 3.4.4)
Fedora Linux PowerPC 8.2.0 Ferme de construction sponge (FC5, gcc 4.1.0)
Fedora Linux x86 8.2.0 Fermes de construction agouti (FC5, gcc 4.1.1); thrush (FC1, gcc 3.3.2)
FreeBSD AMD64 8.2.0 Fermes de construction platypus (6, gcc 3.4.4); dove (6.1, gcc 3.4.4); ermine (6.1, gcc 3.4.4)
FreeBSD x86 8.2.0 Fermes de construction minnow (6.1, gcc 3.4.4); echidna (6, gcc 3.4.2); herring (6, Intel cc 7.1)
Gentoo Linux AMD64 8.1.0 Ferme de construction caribou (2.6.9, gcc 3.3.5)
Gentoo Linux IA64 8.2.0 Ferme de construction stoat (2.6, gcc 3.3)
Gentoo Linux PowerPC 64 8.2.0 Ferme de construction cobra (1.4.16, gcc 3.4.3)
Gentoo Linux x86 8.2.0 Ferme de construction mongoose (1.6.14, icc 9.0.032)
HP-UX IA64 8.2.0 Tom Lane (), 2006-10-23 11.23, gcc et cc ; voir doc/FAQ_HPUX
HP-UX PA-RISC 8.2.0 Tom Lane (), 2006-10-23 10.20 and 11.23, gcc et cc ; voir doc/FAQ_HPUX
IRIX MIPS 8.1.0 Kenneth Marshall (), 2005-11-04 6.5, cc seulement
Kubuntu Linux AMD64 8.2.0 Ferme de construction rosella (5.10 ��Breezy��, gcc 4.0)
Mac OS X PowerPC 8.2.0 Ferme de construction tuna (10.4.2, gcc 4.0)
Mac OS X x86 8.2.0 Ferme de construction jackal (10.4.8, gcc 4.0.1)
Mandriva Linux x86 8.2.0 Ferme de construction gopher (Mandriva 2006, gcc 4.0.1)
NetBSD m68k 8.2.0 Ferme de construction osprey (2.0, gcc 3.3.3)
NetBSD x86 8.2.0 Fermes de construction gazelle (3.0, gcc 3.3.3) ; canary (1.6, gcc 2.95.3)
OpenBSD AMD64 8.2.0 Ferme de construction zebra (4.0, gcc 3.3.5)
OpenBSD Sparc 8.0.0 Chris Mair (), 2005-01-10 3.3
OpenBSD Sparc64 8.2.0 Ferme de construction spoonbill (3.9, gcc 3.3.5)
OpenBSD x86 8.2.0 Fermes de construction emu (4.0, gcc 3.3.5) ; guppy (3.8, gcc 3.3.5) minor ecpg test failure on 3.8
Red Hat Linux AMD64 8.1.0 Tom Lane (), 2005-10-23 RHEL 4
Red Hat Linux IA64 8.1.0 Tom Lane (), 2005-10-23 RHEL 4
Red Hat Linux PowerPC 8.1.0 Tom Lane (), 2005-10-23 RHEL 4
Red Hat Linux PowerPC 64 8.1.0 Tom Lane (), 2005-10-23 RHEL 4
Red Hat Linux