Je suis parti de l'installation d'une RedHat 5.0.
On doit pouvoir, sur la machine considérée, utiliser le serveur HTTP Apache sur le localhost (127.0.0.1) et un navigateur (lynx, Netscape ou autre ...)
L'installation de Perl et de PostgresSQL n'est pas une obligation dans le sens où il va falloir les mettre à jour (si on part de la 5.0).
À la fin de l'installation (après le reboot), il faut modifier les fichiers de configuration d'Apache :
# cd /etc/httpd/conf
# vi httpd.conf
Chercher la chaîne ServerName
/#ServerName
Enlever le # et mettre localhost ou le nom du serveur, le plus souvent ce que retourne la commande hostname (ATTENTION, ce nom doit être valide sur le domaine et référencé dans les fichiers /etc/hosts et/ou dans le DNS).
En passant par http://www.redhat.com/mirrors.html, j'ai choisi un site et suis allé chercher les paquets de la RedHat 5.1 : ftp://ftp.etud.insa-tlse.fr/pub/redhat/redhat-5.1/i386/RedHat/RPMS
Pour Perl, il faut au minimum la version 5.004_04, donc :
perl-5.004_6.i386.rpm (taille : environ 3.3 Mo au 10/98)
Pour PostgresSQL, il faut au minimum la version 6.3, donc :
postgressql-6.3.2-4.i386.rpm (taille : 2.8 Mo au 10/98)
postgres-clients-6.3.2-4.i386.rpm (taille : environ 315 Ko au 10/98)
postgres-data-6.3.2-4.i386.rpm (taille : environ 101 Ko au 10/98)
et postgres-devel-6.3.2-4.i386.rpm (taille : environ 306 Ko au 10/98
Il faut aussi mettre à jour la librairie ncurses (cela, on l'apprend quand on essaie d'installer PostgresSQL) :
ncurses.4.2-6.i386.rpm (taille : environ 625 Ko au 10/98).
Ensuite, il faut les modules permettant à perl de communiquer avec les bases de données. Pour cela, aller sur http://www.hermetica.com/technologia/perl/DBI/index.html et choisir Download DBI (le module général - taille : environ 145 Ko au 10/98) et Download DBD::Pg (le module particulier à PostgresSQL - taille : environ 23 Ko au 10/98)
Pour l'installation des rpm, j'ai placé tous les fichiers nécessaires dans /tmp/sgbd.
Perl :
# rpm -qa | grep perl
Si rpm trouve un paquet Perl déjà installé, on utilise -U (upgrade) et sinon -i (lire les documents traitant de RPM)
# rpm -Uv --percent perl-5.004_6.i386.rpm
ncurses :
# rpm -iv --percent --replacefiles ncurses.4.2-6.i386.rpm
PostgresSQL :
De même que pour Perl, si une version de PostgresSQL est déjà installée, il faut utiliser -U et non -i. Dans le cas où il y a déjà des bases PostgresSQL, il faut suivre la documentation de mise-à-jour sous peine de perdre des données.
# rpm -iv --percent postgres*.i386.rpm
# /etc/rc.d/init.d/postgresql start
Il faut vérifier que le postmaster est bien lancé par l'utilisateur postgres :
# ps auxw | grep postmaster
Pour l'installation des modules, voir les documentations fournies (fichiers README après l'extraction) mais voici les étapes :
# tar xvzf DBI-1_02_tar.gz
# cd DBI-1.02
# perl Makefile.PL
# make
# make test
# make install
# cd ..
# tar xvzf DBD-Pg-0_73_tar.gz
# chmod -R a+w *
# cd DBD-Pg-0.73
Il faut passer sous l'utilisateur postgres (car il est le seul pour l'instant à être autorisé à accéder aux bases postgresSQL - surtout pour le "make test") car les 3 premières étapes ne doivent pas se faire sous root.
# su - postgres
$ perl Makefile.PL
$ make
$ make test
Se remettre sous root
$ exit
# make install
Si tout se passe bien, vous êtes presque sorti d'affaire ... Sinon, je vous renvoie à la documentation fournie avec les paquets et modules (Voir la documentation sur le site http://www.hermetica.com/technologia/perl/DBI).
Passer sous l'utilisateur postgres pour créer une base, une table, et y mettre quelques données :
# su - postgres
$ createdb personnedb
$ psql personnedb
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: personnedb
personnedb=> CREATE TABLE copain (
personnedb-> prenom text,
personnedb-> ville text,
personnedb-> date date
personnedb-> );
CREATE
personnedb=> INSERT INTO copain VALUES ('FABRICE','ORLY','01/08/1973');
INSERT 18603 1
personnedb=> SELECT * FROM copain;
prenom |ville |date
---------+--------+----------
FABRICE |ORLY |01-08-1973
(1 row)
personnedb=> INSERT INTO copain VALUES ('RENAUD','CRONES','22/08/1971');
INSERT 18604 1
personnedb=> INSERT INTO copain VALUES ('PATRICE','CRONES','16/05/1970');
INSERT 18605 1
personnedb=> SELECT * FROM copain;
prenom |ville |date
---------+--------+----------
FABRICE |ORLY |01-08-1973
RENAUD |CRONES |08-22-1971
PATRICE |CRONES |05-16-1970
(3 rows)
personnedb=> SELECT * FROM copain WHERE date > '01/01/1971';
prenom |ville |date
---------+--------+----------
FABRICE |ORLY |01-08-1973
RENAUD |CRONES |08-22-1971
(2 rows)
personnedb=> SELECT * FROM copain WHERE prenom LIKE '%A%E';
prenom |ville |date
---------+--------+----------
FABRICE |ORLY |01-08-1973
PATRICE |CRONES |05-16-1970
(2 rows)
personnedb=> \q
$
Et voila, on a une base (personnedb), avec une table (copain) et 3 enregistrements.