17/11/2007 Installation pour linux ubuntu 6.06:
MERCI à commentcamarche.net, à partir duquel ce tuto est largement inspiré.
- Téléchargement : Aller sur www.postgresql.org. Noter le numéro de la latest release( ici 8.2.5). Cliquer sur le lien « source », puis le premier .tar.gz qui vient : postgresql-8.2.5.tar.gz .( 14.9 Mo). Télécharger le fichier. Décompacter l’archive par exemple dans /usr/src( afin que tous les utilisateurs du système puissent y accéder).
(sudo si dans /usr/src) tar xvzf postgresql-8.2.5.tar.gz
Un dossier appelé postgresql-8.2.5 est créé(62,6 Mo).
- le ./configure(obligation de le faire AVANT la compilation) :
Faire cd postgresql-8.2.5 . Puis ./configure(pas besoin de sudo) . Des librairies peuvent manquer, arrêtant ainsi le ./configure. Il m’a manqué d’abord la librairie Readline( j’ai installé le paquet libreadline5-dev par synaptic, pourtant j’avais libreadline5). Puis il m’a manqué la librairie zlib( j’ai installé zlib1g-dev, bien qu’ayant déjà zlib1g).
Puis lancer la compilation des sources par :
cd /usr/src/postgresql-8.2.5
sudo make(sudo obligatoire)( un fichier “Makefile” est présent dans notre dossier).
La compilation prend quelques minutes, avec affichage tout au long de celle-ci( des commandes gcc, etc). A la fin : « All of PostgreSQL successfully made. Ready to install. ».
- L’installation: taper:
sudo make install
L’installation a lieu, avec affichages tout au long. A la fin : « PostgreSQL installation complete ».
Vous pouvez, pour vous simplifier la vie, incorporer dans les variables d’environnement :
Les exécutables, lors de l’installation par le make install, ont été installés dans /usr/local/pgsql/bin . Pour rajouter le chemin /usr/local/pgsql/bin, qui est le chemin des exécutables, vous devez ajouter ce chemin à la variable d’environnement PATH. Pour cela, vous pouvez taper :
Export PATH = $PATH: /usr/local/pgsql/bin
Ce qui a pour unique effet de rajouter notre chemin à la variable d’environnement PATH. Pour vous en convaincre, faites echo $PATH avant et après : vous vous rendez compte alors que l’unique différence est que «:/usr/local/pgsql/bin » a été rajouté au bout de votre variable PATH. Le « : » sert de séparateur aux différents PATH.
export MANPATH = $MANPATH:/usr/local/pgsql/man
Et aussi, des variables spécifiques à postgresql:
export PGLIB=/usr/local/pgsql/lib
Se créer un dossier chez nous, par exemple “/home/jean/pgsqljean”(le data n’est pas créé par nous). Ne pas le créer dans un dossier où on n’a pas les droits, sinon initdb après rencontre des problèmes de droits(moi j’ai pas réussi en tout cas).
export PGDATA=/home/jean/pgsqljean/data
Ajouter ces lignes dans le fichier /etc/profile .
- Démarrage pour la première fois de PostgreSQL :
Vous devez initialiser la base de données en exécutant initdb(qui lance un script).
Vous devez avoir initialisé PGDATA pour pouvoir exécuter initdb.
A la fin : « Success. You can now start the database server using:
postgres -D /home/sabri/pgsqlsabri/data
or
pg_ctl -D /home/sabri/pgsqlsabri/data -l logfile start
“.
COPIE D’ECRAN du résultat de initdb:
“
sabri@sabri-desktop:~$ initdb
The files belonging to this database system will be owned by user "sabri".
This user must also own the server process.
The database cluster will be initialized with locale fr_FR.UTF-8.
The default database encoding has accordingly been set to UTF8.
creating directory /home/sabri/pgsqlsabri/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 24MB/153600
creating configuration files ... ok
creating template1 database in /home/sabri/pgsqlsabri/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.
Success. You can now start the database server using:
sabri@sabri-desktop:~$
”
FIN DE LA COPIE D ’ECRAN
- Lancement du serveur de base de données:
postgres -D /home/sabri/pgsqlsabri/data : ca marche, à la fin: “LOG: database system is ready”, mais on se retrouve dans un programme, duquel on ne peut sortir que par control C. Et quand on sort : « database system is shutdown ». J’ai pas compris encore l’intérêt.
Par contre, avec pg_ctl -D /home/sabri/pgsqlsabri/data -l logfile start ,
Affichage de “server starting”. Et le serveur est réellement démarré, car après, nos commandes postgre sont prise en compte. Comme par exemple, dans un terminal :
$createdb jeandb
Affichage : « CREATE DATABASE »
- Premiers pas
. Pour créer une base, tout d’abord, dans un terminal :
. Pour supprimer une base, dans un terminal;
$dropdb jeandb
Affichage : « DROP DATABASE »
Pour accéder à une base que vous avez créée, plusieurs façons existent :
* D’abord le programme en ligne de commande de PostgreSQL, qui se nomme psql. Avec ce programme, on peut exécuter des commandes SQL.
*Des interfaces graphiques existent, comme PgAccess.
Pgaccess est disponible par le gestionnaire de paquets synaptic, sous le nom « pgaccess ». Une fois installé, pour lancer pgacces :
$pgaccess
Votre base est visible dans l’arbre à gauche, si vous en avez créé une avant de lancer pgaccess.
*Vous pouvez écrire votre propre interface cliente.
Le programme en ligne de commande de PostgreSQL : psql
Pour le lancer :
$psql nom_base (exemple psql jeandb)
Le programme démarre alors.
Aide : \h
Sortir : \q