  INSTALLATION DE POSTGRES95 SUR LINUX
  Gilles DAROLD, darold@neptune.fr
  v1.0, 23 novembre 1996

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

  11..  CCrreeeerr uunn llooggiinn ppoossttggrreess

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

  22..  RReeccuuppeerraattiioonn eett iinnssttaallllaattiioonn ddeess ffiicchhiieerrss ssoouurrcceess

  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

  33..  CCoommppiillaattiioonn eett iinnssttaallllaattiioonn

  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 :

     PPOORRTTNNAAMMEE
        specifie  la plate-forme sur laquelle Postgres sera installe. Il
        faut donc changer la valeur par defaut (alpha) par la valeur  ->
        linux.

     PPOOSSTTGGRREESSLLOOGGIINN
        specifie l'utilisateur qui realisera initdb et lancera le daemon
        postmaster. La valeur par defaut est postgres et c'est tres bien
        comme ca.
     PPOOSSTTGGRREESSDDIIRR
        specifie  le plus haut repertoire contenant tous les fichiers de
        postgres95, ici : /usr/local/postgres95/

     SSRRCCDDIIRR
        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).

  44..  IInniittiiaalliissaattiioonn ddeess bbaasseess ddee ddoonnnneeeess

  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

  55..  DDeemmaarrrreerr llee ddaaeemmoonn ppoossttmmaasstteerr

  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

  66..  TTeesstt ddee rreeqquueetteess ssuurr ppoossttggrreess

  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.

  77..  LLaanncceemmeenntt dduu ddaaeemmoonn ddee ppoossttggrreess9955 aauu bboooott LLIINNUUXX

  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 :

     11)) --
        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.

     22)) --
        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.

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

  88..  CCooddee ssoouurrccee dduu ssccrriipptt ppoossttggrreess--ssttaarrtt

  #!/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
  #######################################################################

  99..  NNoottee

  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.

