Normalmente nelle installazioni standard delle distribuzioni Linux commerciali e non come Debian, Mandrake e Red Hat, PostgreSQL è installato di default come pacchetto binario RPM.
Perchè quindi ricompilare i sorgenti quando abbiamo gia' il database pronto?
Una prima buona motivazione e' che ricompilando si ottiene codice ottimizzato per il processore su cui dovrà girare.
Un'altro buon motivo e' che è che ricompilando si può adoperare sempre l'ultima release senza essere legati ai tempi e alle politiche di rilascio dei pacchetti binari.
Infine in fase di configurazione e' possibile specificare alcuni parametri che danno al database caratteristiche speciali come il supporto per gli ODBC.
La configurazione di default di PostgreSQL prevede l'utilizzo della libreria readline per il supporto dell'history nel client a riga di comando psql.
Pertanto e' necessario avere installate tali librerie, normalmente chiamate libreadlineX-dev dove X e' la versione della libreria.
Ogni distribuzione ha una modalita' diversa per l'installazione dei pacchetti.
In questo caso, facendo riferimento a Debian Sarge 3.1 l'installazione si risolve con il comando apt-get install libreadline4-dev.
Su di una Debian fresh install le dipendenze da installare sono le seguenti:
Prima di procedere con la ricompilazione rimuovete l'eventuale postgresql installato dalla distribuzione (apt-get, rpm e similari a seconda della distribuzione che avete).
Una volta in possesso del sistema "pulito" aggiungete un utente al sistema con il nome postgres se non presente e loggatevi con questi.
Scaricate il pacchetto sorgente dall'url http://www.postgresql.org/ftp/source/v8.1.3/
Il pacchetto postgresql-8.1.3.tar.bz2 e' attualmente lo stato dell'arte del database.
Loggati come postgres scompattate il pacchetto con il comando
tar xvfj postgresql-8.1.3.tar.bz2
posizionatevi nella directory postgresql-8.1.3.tar e digitate il comando
./configure
Durante la verifica potrebbe rendersi necessario installare altre librerie di sviluppo oltre alla gia' citata readline.
Al termine del configure lo script produrra' i makefile per compilare il database.
A questo punto sempre come utente postgres digitate:
make all
Dopo un tempo piu' o meno lungo, a seconda della potenza della vostra macchina avrete compilato il vostro database.
Prima di procedere all'installazione vera e propria e' consigliabile, ma non obbligatorio, eseguire un regression test.
Questo test non fa altro che creare una istanza fittizia di postgresql per eseguire una serie di test sul corretto funzionamento del database.
Il comando per eseguirlo e'make check
Il regression test esegue una serie di controlli sulle piu' comuni attivita' del database in modo da essere sicuro che il tutto funzioni a dovere.
Infine per installare, da utente root, e' sufficiente digitare il consueto comando
make install
Aggiungete le seguenti righe:
export PGDATA=/home/postgres/pgData
export PATH=$PATH:/usr/local/pgsql:/usr/local/pgsql/bin:/usr/local/pgsql/lib
Create la directory pgData nella stessa posizione specificata nella variabile $PGDATA.
Valorizzate le variabili d'ambiente specificate in .bash_profile con il comando
. .bash_profile
e digitate
initdb
Questo comando creera' nella directory indicata il cluster database necessario per interfacciarsi con il processo postmaster.
Al termine dell'inizializzazione del cluster database avviate l'istanza con il comando:pg_ctl start
Un messaggio simile a questo
LOG: database system was shut down at 2006-04-17 13:17:29 CEST
LOG: checkpoint record is at 1/61BA9DD0
LOG: redo record is at 1/61BA9DD0; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 14945558; next OID: 157011
LOG: next MultiXactId: 1; next MultiXactOffset: 0
LOG: database system is ready
indichera' la corretta inizializzazione dell'istanza.
Se non vi interessa visualizzare a video i messaggi di log del database vi conviene avviare postmaster con la redirezione su file di log con il comando:
pg_ctl start -l pgsql.log
per fermare il database e' sufficiente digitare il comando
pg_ctl stop -m fast
Nel prossimo articolo vedremo come collegarci al nostro database con il client testuale psql e inizieremo a muovere i primi passi con i comandi di amministrazione di postgresql.