darold@neptune.fr
Avant toute opération il faut créer un compte utilisateur postgres. Ceci requiert les privilèges de root, certaines autres parties aussi, donc restez en root.
L'URL http://www.postgresql.org/ pointe sur l'ensemble des adresses où l'on peut récupérer 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'implémentation en ligne est quant à lui accessible depuis l'url : http://www.postgresql.org/impguide/. Je vous conseille surtout un site très complet sur PostgreSQL à : http://logical.thought.net/postgres95/.
Copiez le fichier archive dans le répertoire /usr/local/
.
Il faut ensuite décomprimer le fichier avec gunzip puis le
désarchiver avec la commande
tar -xvf nomfichier.tar
ou directement avec la commande :
tar xvzf nomfichier.tar.gz
Note : cette installation a été faite sur un système linux slackware 3, avec une configuration par défaut utilisant le format binaire ELF (format des exécutables de Linux).
Les Makefiles utilisés pour compiler Postgres95 nécessitent GNU make.
Le fichier /usr/local/postgres95/src/Makefile.global
contient les
paramètres de compilation à modifier :
spécifie la plate-forme sur laquelle Postgres sera installé. Il faut donc changer la valeur par défaut (alpha) par la valeur -> linux.
spécifie l'utilisateur qui réalisera initdb et lancera le daemon postmaster. La valeur par défaut est postgres et c'est très bien comme ça.
spécifie le plus haut répertoire contenant
tous les fichiers de postgres95, ici : /usr/local/postgres95/
spécifie où sont disposés les fichiers
sources. Ici et par défaut dans $(POSTGRESDIR)/src
.
Après 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 réalisez l'installation.
Après cette installation complète de POSTGRES95, vérifiez 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 terminée 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 déjà créé un utilisateur
et un groupe postgres (cf plus bas), placez-vous dans le répertoire
/usr/local/
et tapez les commandes suivantes :
% chown -R postgres postgres95/
% chgrp -R postgres postgres95/
ainsi, récursivement (-R) tous les fichiers à partir du
répertoire /usr/local/postgres95/
, lui compris, appartiendront
à l'utilisateur postgres et au groupe postgres.
Pour créer 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 numéro de gid déjà existant).
Après avoir réalisé avec succès l'installation de postgres95 il reste à initialiser les bases de données. Attention, toutes les bases déjà existantes seront effacées. Logez-vous en tant qu'utilisateur postgres et tapez :
% initdb
Pour rendre POSTGRES95 opérationnel, 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 répond à la commande :
% postmaster -S
Celui-ci tournera donc en background et ne sera visible que par la commande :
% ps -exf
Afin de s'assurer que tout va bien, il est recommandé de créer
une base de données à partir du répertoire contenant
les exécutables 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 apparaître :
essai =>
Faites un essai de création de table, d'insertion, de
sélection et de mise à jour sur une table.
Un manuel d'utilistion de POSTGRES95 est disponible dans le
répertoire /usr/local/postgres95/doc/
.
Le login postgres ayant par défaut tous les droits,
si vous voulez que d'autres utilisateurs puissent utiliser
les bases de données, il vous faut créer ces utilisateurs
en tapant la commande à partir de bin/
si vous n'avez pas
encore ajouté le répertoire à votre path
(voir plus loin) :
% createuser darold
Répondez 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 données, vous devez le faire en SQL avec le mot réservé GRANT et connecté à la base.
Afin de réaliser un lancement automatique du daemon postmaster
et de permettre aux utilisateurs, dés le login, d'accéder
à l'utilisation de postgres, il faut générer une
procédure d'automatisation par l'intermédiaire d'un script et
du fichier /etc/inittab
, comme suit :
Créer un fichier en script shell nommé
postgres-start, placez-le dans le répertoire
/usr/local/scripts
. Il doit être exécuté par
le système. Ce fichier contient tous les paramètres
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 débogage nommé postmaster.log, vous devrez le créer et le placer dans un répertoire, à créer aussi, tel que proposé dans ce script :
/usr/local/postgres95/log/postmaster.log
ou, si vous avez un répertoire à cet effet, modifiez en conséquence le script.
Il vous faut ensuite taper les lignes suivantes dans votre
fichier /etc/inittab
. Ce fichier sert au lancement de
procédures lors du boot système, et ici le lancement du script
précédent (selon un run_level) :
# Lancement du daemon de postgres95
p1:45:wait:/usr/local/scripts/postgres-start
où p1 est le nom de la procédure, 45 le run level, et wait veut dire d'attendre la fin du déroulement du fichier inittab avant de continuer.
Rebootez la machine, et reportez-vous à la documentation de Postgres95 pour de plus amples informations.
#!/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 problèmes...
#----------------------------------------------------------------------
# Lancement du daemon de Postgres95
su postgres --command="postmaster -d 1 1>$LOGf 2>&1 &"
# End of /usr/local/scripts/postgres-start
#######################################################################
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.