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.