INSTALLATION DE POSTGRES95 SUR LINUX
 Gilles DAROLD, [email protected]
 v1.0, 23 novembre 1996

 Ce  document  decrit  comment  installer  Postgres95 ou PostgreSQL sur
 Linux pour les versions 1.01 a 1.09.

 11..  CCrreeeerr uunn llooggiinn ppoossttggrreess

 Avant toute operation il faut creer un  compte  utilisateur  postgres.
 Ceci  requiert les privileges de root, certaines autres parties aussi,
 donc restez en root.

 22..  RReeccuuppeerraattiioonn eett iinnssttaallllaattiioonn ddeess ffiicchhiieerrss ssoouurrcceess

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

 Copiez  le  fichier  archive  dans le repertoire /usr/local/.  Il faut
 ensuite decomprimer le fichier avec gunzip puis le desarchiver avec la
 commande

      tar -xvf nomfichier.tar

 ou directement avec la commande :

      tar xvzf nomfichier.tar.gz

 33..  CCoommppiillaattiioonn eett iinnssttaallllaattiioonn

 Note  :  cette installation a ete faite sur un systeme linux slackware
 3, avec une configuration par defaut utilisant le format  binaire  ELF
 (format des executables de Linux).

 Les  Makefiles utilises pour compiler Postgres95 necessitent GNU make.

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

    PPOORRTTNNAAMMEE
       specifie  la plate-forme sur laquelle Postgres sera installe. Il
       faut donc changer la valeur par defaut (alpha) par la valeur  ->
       linux.

    PPOOSSTTGGRREESSLLOOGGIINN
       specifie l'utilisateur qui realisera initdb et lancera le daemon
       postmaster. La valeur par defaut est postgres et c'est tres bien
       comme ca.
    PPOOSSTTGGRREESSDDIIRR
       specifie  le plus haut repertoire contenant tous les fichiers de
       postgres95, ici : /usr/local/postgres95/

    SSRRCCDDIIRR
       specifie ou sont disposes  les  fichiers  sources.  Ici  et  par
       defaut dans $(POSTGRESDIR)/src.

 Apres  avoir  edite  et  modifie  le fichier src/Makefile.global, vous
 pouvez commencer a 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 realisez l'installation.

 Apres cette installation complete de  POSTGRES95,  verifiez  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 terminee et il ne reste plus qu'a
 changer le nom de l'utilisateur et de groupe de tous les fichiers qui,
 pour  l'instant  appartiennent  a  root.  Pour cela, si vous avez deja
 cree un utilisateur et un groupe postgres (cf plus  bas),  placez-vous
 dans le repertoire /usr/local/ et tapez les commandes suivantes :

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

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

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

      postgres::500:root,postgres,darold

 ou postgres est le nom du groupe, 500 est le gid, et les noms suivants
 sont  les  utilisateurs  appartenant  a  ce groupe (attention a ne pas
 affecter un numero de gid deja existant).

 44..  IInniittiiaalliissaattiioonn ddeess bbaasseess ddee ddoonnnneeeess

 Apres avoir realise avec succes l'installation de postgres95 il  reste
 a  initialiser les bases de donnees.  Attention, toutes les bases deja
 existantes seront effacees. Logez-vous en tant qu'utilisateur postgres
 et tapez :

      % initdb

 55..  DDeemmaarrrreerr llee ddaaeemmoonn ppoossttmmaasstteerr

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

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

 Le lancement de postmaster repond a la commande :

      % postmaster -S

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

      % ps -exf

 66..  TTeesstt ddee rreeqquueetteess ssuurr ppoossttggrreess

 Afin de s'assurer que tout va bien, il est  recommande  de  creer  une
 base  de  donnees  a partir du repertoire contenant les executables 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 apparaitre :

      essai =>

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

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

      % createuser darold

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

 77..  LLaanncceemmeenntt dduu ddaaeemmoonn ddee ppoossttggrreess9955 aauu bboooott LLIINNUUXX

 Afin  de  realiser un lancement automatique du daemon postmaster et de
 permettre aux utilisateurs, des le login, d'acceder a l'utilisation de
 postgres,   il   faut   generer  une  procedure  d'automatisation  par
 l'intermediaire d'un script et du fichier /etc/inittab, comme suit :

    11)) --
       Creer un fichier en script shell nomme postgres-start, placez-le
       dans  le repertoire /usr/local/scripts. Il doit etre execute par
       le  systeme.   Ce   fichier   contient   tous   les   parametres
       d'initialisation et de lancement du daemon postmaster.

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

       Comme  ce  script  utilise  un   fichier   de   debogage   nomme
       postmaster.log,  vous  devrez  le  creer  et  le  placer dans un
       repertoire, a creer aussi, tel que propose dans ce script :

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

    ou, si vous avez un repertoire a cet effet, modifiez en consequence
    le script.

    22)) --
       Il  vous  faut  ensuite  taper  les  lignes suivantes dans votre
       fichier /etc/inittab. Ce fichier sert au lancement de procedures
       lors  du  boot  systeme, et ici le lancement du script precedent
       (selon un run_level) :

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

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

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

 88..  CCooddee ssoouurrccee dduu ssccrriipptt ppoossttggrreess--ssttaarrtt

 #!/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 problemes...
 #----------------------------------------------------------------------
 # Lancement du daemon de Postgres95
 su postgres --command="postmaster -d 1 1>$LOGf 2>&1 &"

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

 99..  NNoottee

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

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