
                     INSTALLATION DE POSTGRES95 SUR LINUX

Gilles DAROLD, darold@neptune.fr

   v1.0, 23 novembre 1996
     _________________________________________________________________

   _Ce document dcrit comment installer Postgres95 ou PostgreSQL sur
   Linux pour les versions 1.01  1.09._
     _________________________________________________________________

1. Crer un login postgres

   Avant toute opration il faut crer un compte utilisateur postgres.
   Ceci requiert les privilges de root, certaines autres parties aussi,
   donc restez en root.

2. Rcupration et installation des fichiers sources

   L'URL http://www.postgresql.org/ pointe sur l'ensemble des adresses o
   l'on peut rcuprer les fichiers sources de POSTGRES95. Les man en
   ligne des commandes de postgres95 sont disponibles  cette adresse :
   http://www.eol.ists.ca/~dunlop/postgres95/. Le Guide d'implmentation
   en ligne est quant  lui accessible depuis l'url :
   http://www.postgresql.org/impguide/. Je vous conseille surtout un site
   trs complet sur PostgreSQL  :
   http://logical.thought.net/postgres95/.

   Copiez le fichier archive dans le rpertoire /usr/local/. Il faut
   ensuite dcomprimer le fichier avec gunzip puis le dsarchiver avec la
   commande

tar -xvf nomfichier.tar

   ou directement avec la commande :

tar xvzf nomfichier.tar.gz

3. Compilation et installation

   Note : cette installation a t faite sur un systme linux slackware
   3, avec une configuration par dfaut utilisant le format binaire ELF
   (format des excutables de Linux).

   Les Makefiles utiliss pour compiler Postgres95 ncessitent GNU make.

   Le fichier /usr/local/postgres95/src/Makefile.global contient les
   paramtres de compilation  modifier :

   _PORTNAME_
          spcifie la plate-forme sur laquelle Postgres sera install. Il
          faut donc changer la valeur par dfaut (alpha) par la valeur ->
          linux.

   _POSTGRESLOGIN_
          spcifie l'utilisateur qui ralisera initdb et lancera le
          daemon postmaster. La valeur par dfaut est postgres et c'est
          trs bien comme a.

   _POSTGRESDIR_
          spcifie le plus haut rpertoire contenant tous les fichiers de
          postgres95, ici : /usr/local/postgres95/

   _SRCDIR_
          spcifie o sont disposs les fichiers sources. Ici et par
          dfaut dans $(POSTGRESDIR)/src.

   Aprs avoir dit et modifi le fichier src/Makefile.global, vous
   pouvez commencer  compiler et installer POSTGRES95. Pour cela il
   faut, toujours en login root, taper les commandes suivantes :

% cd /usr/local/postgres95/src
% make
% make install

   ce qui peut prendre entre 1/4 d'heure et 1/2 heure suivant la machine
   sur laquelle vous ralisez l'installation.

   Aprs cette installation complte de POSTGRES95, vrifiez que vous
   avez bien les fichiers suivants :

   - Dans /usr/local/postgres95/bin/

cleardbdir*   destroydb*    monitor*      postgres*
createdb*     destroyuser*  pg_id*        postmaster@
createuser*   initdb*       pg_version*   psql*

   - Dans /usr/local/postgres95/data/files/

global1.bki           local1_template1.bki
global1.bki.source    local1_template1.bki.source

   Si c'est le cas, l'installation est termine et il ne reste plus qu'
   changer le nom de l'utilisateur et de groupe de tous les fichiers qui,
   pour l'instant appartiennent  root. Pour cela, si vous avez dj cr
   un utilisateur et un groupe postgres (cf plus bas), placez-vous dans
   le rpertoire /usr/local/ et tapez les commandes suivantes :

% chown -R postgres postgres95/
% chgrp -R postgres postgres95/

   ainsi, rcursivement (-R) tous les fichiers  partir du rpertoire
   /usr/local/postgres95/, lui compris, appartiendront  l'utilisateur
   postgres et au groupe postgres.

   Pour crer un groupe sur linux, ditez le fichier /etc/group et
   ajoutez la ligne suivante :

postgres::500:root,postgres,darold

   o postgres est le nom du groupe, 500 est le gid, et les noms suivants
   sont les utilisateurs appartenant  ce groupe (attention  ne pas
   affecter un numro de gid dj existant).

4. Initialisation des bases de donnes

   Aprs avoir ralis avec succs l'installation de postgres95 il reste
    initialiser les bases de donnes. Attention, toutes les bases dj
   existantes seront effaces. Logez-vous en tant qu'utilisateur postgres
   et tapez :

% initdb

5. Dmarrer le daemon postmaster

   Pour rendre POSTGRES95 oprationnel, il faut lancer le daemon
   postmaster, mais avant, il faut exporter les variables d'environnement
   dont il a besoin. C'est--dire :

% export PGDATA=/usr/local/postgres95/data/
% export PGPORT=5432
% echo $PGDATA $PGPORT  (pour voir si elles sont positionnees).

   Le lancement de postmaster rpond  la commande :

% postmaster -S

   Celui-ci tournera donc en background et ne sera visible que par la
   commande :

% ps -exf

6. Test de requtes sur postgres

   Afin de s'assurer que tout va bien, il est recommand de crer une
   base de donnes  partir du rpertoire contenant les excutables de
   postgres95 (/usr/local/postgres95/bin) et par la commande :

% createdb essai

   puis de s'y connecter en tapant :

% psql essai

   Si tout se passe bien, vous verrez le prompt postgres apparatre :

essai =>

   Faites un essai de cration de table, d'insertion, de slection et de
   mise  jour sur une table. Un manuel d'utilistion de POSTGRES95 est
   disponible dans le rpertoire /usr/local/postgres95/doc/.

   Le login postgres ayant par dfaut tous les droits, si vous voulez que
   d'autres utilisateurs puissent utiliser les bases de donnes, il vous
   faut crer ces utilisateurs en tapant la commande  partir de bin/ si
   vous n'avez pas encore ajout le rpertoire  votre path (voir plus
   loin) :

% createuser darold

   Rpondez oui aux droits que vous souhaitez donner  ce nouvel
   utilisateur POSTGRES. Attention : ceci ne donne que les droits de
   cr,ation et d'effacement sur les bases de cet utilisateur. Si vous
   voulez que d'autres utilisateurs puissent utiliser cette base de
   donnes, vous devez le faire en SQL avec le mot rserv GRANT et
   connect  la base.

7. Lancement du daemon de postgres95 au boot LINUX

   Afin de raliser un lancement automatique du daemon postmaster et de
   permettre aux utilisateurs, ds le login, d'accder  l'utilisation de
   postgres, il faut gnrer une procdure d'automatisation par
   l'intermdiaire d'un script et du fichier /etc/inittab, comme suit :

   _1) -_
          Crer un fichier en script shell nomm postgres-start,
          placez-le dans le rpertoire /usr/local/scripts. Il doit tre
          excut par le systme. Ce fichier contient tous les paramtres
          d'initialisation et de lancement du daemon postmaster.

          Le source de ce fichier /usr/local/scripts/postgres-start est
          joint  la fin de ce document.

          Comme ce script utilise un fichier de dbogage nomm
          postmaster.log, vous devrez le crer et le placer dans un
          rpertoire,  crer aussi, tel que propos dans ce script :

/usr/local/postgres95/log/postmaster.log

          ou, si vous avez un rpertoire  cet effet, modifiez en
          consquence le script.

   _2) -_
          Il vous faut ensuite taper les lignes suivantes dans votre
          fichier /etc/inittab. Ce fichier sert au lancement de
          procdures lors du boot systme, et ici le lancement du script
          prcdent (selon un run_level) :

# Lancement du daemon de postgres95
p1:45:wait:/usr/local/scripts/postgres-start

          o p1 est le nom de la procdure, 45 le run level, et wait veut
          dire d'attendre la fin du droulement du fichier inittab avant
          de continuer.

   _3) -_
          Rebootez la machine, et reportez-vous  la documentation de
          Postgres95 pour de plus amples informations.

8. Code source du script postgres-start

#!/bin/sh

#######################################################################
#
# MACHINE         : gdpc
# SCRIPT_NAME     : postgres-start
# SCRIPT LANGUAGE : sh
#
#       Created by: Gilles DAROLD
#       Modify by : Gilles DAROLD on Sun Nov 24 18:36:24 1996
#######################################################################

# Variables d'environnement pour Postgres95 :
POSTGRESHOME=/usr/local/postgres95
PGDATA=$POSTGRESHOME/data
PGPORT=5432

# Chemin d'acces
POSTGRESPATH=$POSTGRESHOME/bin

# Ajout au path
PATH=/sbin:/bin:/usr/bin:$POSTGRESPATH

echo ""
echo "Lancement du daemon de postgres95 : postmaster"

# fichier de debugage du lancement de postmaster
LOGf=$POSTGRESHOME/log/postmaster.log

if [ -f $LOGf ] ; then
   mv $LOGf $LOGf.OLD
fi

#----------------------------------------------------------------------
# Attention, le lancement du deamon doit se faire sous l'UID postgres!
# Ne jamais lancer POSTMASTER en superutilisateur root, sinon vous
# pouvez avoir de graves problmes...
#----------------------------------------------------------------------
# Lancement du daemon de Postgres95
su postgres --command="postmaster -d 1 1>$LOGf 2>&1 &"

# End of /usr/local/scripts/postgres-start
#######################################################################

9. Note

   1>$LOGf correspond  une redirection du canal de sortie sur le fichier
   LOGf.

   2>&1 correspond  la redirection du canal d'erreur sur le canal de
   sortie. Les erreurs sortiront donc sur le fichier LOGf.
