Installare PostgreSQL su Mac OS X utilizzando MacPorts

Una breve guida su come installare PostgreSQL su un sistema Mac OS X direttamente dai sorgenti, utilizzando MacPorts.

In questo breve articolo, indirizzato ai possessori di computer Macintosh con sistema operativo Mac OS 10.4 e 10.5, spiegherò come installare PostgreSQL compilandolo dai sorgenti dell’ultima release stabile, al momento la 8.3. Ricordo che esistono dei pacchetti già preparati per coloro che non intendono sperimentare e confezionare una installazione su misura per il vostro Mac OS X. Per maggiori informazioni, si visiti la pagina "Mac OS X Packages", mantenuta da Dave Page. Apriamo intanto un terminale (da Applicazioni/Utility) e cominciamo a divertirci. :)

Prerequisiti

Innanzitutto è necessario installare MacPorts. Per maggiori informazioni, si legga la guida di MacPorts sull’installazione. Ad ogni modo, i requisiti per la sua installazione sono:

  1. X11 (solo per possessori di Mac OS X Panther, in quanto già incluso su Leopard);
  2. installare XCode Tools

A questo punto scaricare il pacchetto di installazione dal sito di MacPorts, e proseguire con l’installazione. Purtroppo la prima installazione di MacPorts può richiedere anche un paio di ore di tempo. Tenetene di conto. :)

Una volta che MacPorts è a nostra disposizione, è necessario installare alcuni pacchetti, utilizzando l’apposito comando port install (è consigliato alzare il livello di debug dell’operazione, utilizzando l’opzione -d). Da dentro il terminale, digitare:

sudo port -d install NOME_PACCHETTO

In particolare:

  • bison
  • gettext
  • libxml2
  • libxslt
  • openssl
  • pcre
  • readline
  • zlib

Vedrete che lanciando il comando:

sudo port -d install bison gettext libxml2 libxslt openssl pcre readline zlib

Macports comincerà a scaricare i pacchetti, compilarli e installarli, occupandosi anche delle relative dipendenze.

Al termine di questa operazione siamo pronti per scaricare i sorgenti di PostgreSQL.

Scaricare i sorgenti

Esistono due soluzioni. Scaricare i sorgenti ufficiali, oppure prenderli direttamente dal CVS, utilizzando le ultimissime modifiche stabili (che saranno poi incluse nella prima release che verrà successivamente rilasciata). Visto che la prima è molto elementare (basta scaricare i sorgenti in formato TAR compresso dal sito di PostgreSQL), in questa sede ci occupiamo della seconda.

Nella propria home directory, creare la cartella src/postgres, da questo momento conosciuta con il nome di cartella principale dei sorgenti. Se preferite, potete utilizzare un’altra cartella.

Effettuare il login al CVS di PostgreSQL, digitando:

cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login

Digitare una password non vuota. L’operazione è necessaria soltanto una volta (a meno di non eseguire il logout).

Creare il file .cvsrc dentro la propria home directory, contenente:


cvs -z3
update -d -P

Posizionarsi nella cartella principale dei sorgenti e digitare:


cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P -r REL8_3_STABLE pgsql

L’operazione di scaricamento dei sorgenti durerà alcuni minuti. Rinominare la cartella pgsql in REL8_3_STABLE:


mv pgsql REL8_3_STABLE

Compilare i sorgenti

A questo punto dovremmo essere pronti per procedere con la configurazione e la compilazione di PostgreSQL sul nostro Mac. Entrare nella directory REL8_3_STABLE e digitare:


./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-libxslt --enable-nls --with-perl --with-python --with-bonjour

Successivamente, procedere con la compilazione e l’installazione:


make
sudo make install

Creare l’utente postgres

Affinché sia possibile utilizzare PostgreSQL stabilmente è convenzione fare in modo che esegua come utente non amministratore, solitamente come utente postgres. Su Mac OS X, la creazione di un utente non avviene nello stesso modo dei sistemi Linux. Tuttavia in questa sede, non vogliamo scendere in dettaglio ma fornirvi direttamente le istruzioni per creare il gruppo e l’utente, che di default si posizionerà nella cartella /usr/local/pgsql. Per fare questo, digitare:


dscl . -create /Groups/postgres
dscl . -create /Groups/postgres PrimaryGroupID 401
dscl . -append /Groups/postgres RecordName postgres
dscl . -create /Users/postgres
dscl . -create /Users/postgres UniqueID 401
dscl . -create /Users/postgres PrimaryGroupID 401
dscl . -create /Users/postgres UserShell /bin/bash
dscl . -create /Users/postgres RealName "PostgreSQL Server"
dscl . -create /Users/postgres NFSHomeDirectory /usr/local/pgsql
dscl . -append /Users/postgres RecordName postgres

Ci tengo a precisare che queste istruzioni sono state riprese dalla documentazione di PostgreSQL, sezione "The PostgreSQL User Account", grazie al contributo di un utilizzatore anonimo.

Inizializzare la directory PGDATA

A questo punto siamo pronti per l’ultimo passo – importantissimo – prima di far partire PostgreSQL. Occorre inizializzare la data directory di PostgreSQL, conosciuta solitamente con il nome di PGDATA.


export PGDATA=/usr/local/pgsql/data
sudo chown postgres:postgres $PGDATA

E adesso inizializziamola specificando la localizzazione italiana. E’ consigliatissimo oggigiorno utilizzare sempre codifica UTF-8. Digitare:


cd /usr/local/pgsql
./bin/initdb -D data -E=UTF8 --locale=it_IT.UTF-8

Startup del server e primo test

Diventare utente postgres (da amministratore, digitare ‘su - postgres‘ e digitare:


./bin/pg_ctl -D data -l /tmp/logfile start

L’opzione -l specifica il file di log, al momento indicato nella directory temporanea. Per ambienti di produzione, è necessario specificare una directory diversa e impostare correttamente meccanismi di rotazione (che non rientrano in questo articolo).

Se tutto va bene, l’applicazione pg_ctl risponde con un semplice e positivo server starting.

Connessione al server

Adesso siamo pronti a connetterci al nostro server. Come? Utilizzando psql, che si trova nella directory /usr/local/pgsql/bin. Aggiungiamo la directory nel PATH (vi consiglio di farlo anche per tutti gli utenti che utilizzeranno il client psql da console):


export PATH=$PATH:/usr/local/pgsql/bin

Come utente postgres testiamo la connessione:


psql

Quello che ottengo sul mio Mac è questo:


Welcome to psql 8.3.5, the PostgreSQL interactive terminal.
Type: copyright for distribution terms
h for help with SQL commands
? for help with psql commands
g or terminate with semicolon to execute query
q to quit
postgres=#

Se anche voi ottenete questo risultato, complimenti, avete installato PostgreSQL sul vostro Mac! Vi consiglio di installare pgAdmin e cominciare a divertirvi con il più avanzato RDBMS open-source!

Conclusioni

A meno di non utilizzare un server di produzione Mac, il mio consiglio è quello di non far partire il servizio PostgreSQL all’avvio di Mac OS X, ma di lanciarlo a mano tutte le volte che ne avete bisogno, come utente postgres. Per fermare in modo gentile il server, (dando per scontato che la directory bin di PostgreSQL sia nel PATH e la variabile PGDATA sia correttamente impostata) è sufficiente digitare:


pg_ctl stop

Spero che questa guida in italiano possa esservi stata utile. Vi prego di farmi avere dei commenti a riguardo. Grazie!

This Post Has 0 Comments

Leave A Reply