Installazione di PostgreSQL 8.1.x dai sorgenti

Mar, 02/05/2006 - 23:16

Installazione di PostgreSQL 8.1.x dai sorgenti

Inviato da osvaldot 10 commenti

Installazione e configurazione di PostgreSQL 8.1.x direttamente dai sorgentiPerche' ricompilare PostgreSQL ?
Mi sono posto molte volte anch'io la stessa domanda, l'unica risposta sensata che mi viene in mente e' una sola "sono un maniaco".
Adoro vedere PostgreSQL sulla mia Debian GNU/Linux schizzare quando faccio una query, mi piace ottimizzare il mio sistema al massimo, mi piace cronometrare i tempi di risposta e di esecuzione delle query, questo e', forse, l'unico motivo che mi spinge a ricopilare PostgreSQL dai sorgenti.
PostgreSQL puo' essere ricompilato su quasi tutti i sistemi Unix* compatibili, per la lista completa
sui sistemi in cui e' possibile installere PostgreSQL visita il sito ufficile http://www.postgresql.org/docs/8.1/interactive/supported-platforms.html">qui, nel caso specifico installeremo PostgreSQL,
per chi non l'avesse capito Smile, su GNU/Linux in particolore Debian.

Requisiti:

- Conoscenza dell'utilizzo dei comandi shell su GNU/Linux,
essere in grado di creare utenti, directory, assegnare permessi.

- GNU make
per verificare l'esistenza e la versione di GNU make installata
$ gmake --version
su molti sistemi GNU/Linux non trovate il comando gmake, ma direttante make, su Debian
direttamente make

osvaldot@rocco:~$ make --version
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

e' raccomandata la versione 3.76.1 o superiore, su Debian Sarge di default 3.80

- ISO/ANSI C compiler, un compilatore C, sui sistemi GNU/Linux trovate il gcc,
per verificare esistenza e versione

$ gcc --version
gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

- TAR per scompattare i sorgenti e GZIP o BZIP2 per la decompressione dei file,
a seconda dei sorgenti che decidete di scaricare

- GNU Readline library, per facilitare la scrittura dei comandi dalla shell di PostgreSQL,
il comodissimo tab per il completamento automatico dei comandi sql e psql, e per
l'history dei comandi. GNU Readline e' utilizzata di default, per non utilizzarla durante il configure
utilizzare l'opzione --without-readline.
Su Debian GNU/Linux installare i pacchetti libreadline e libreadline-dev
$ apt-get install libreadline
$ apt-get install libreadline-dev

- ZLIB compression library, e' possibile disabilitare questa featurs (--without-zlib durante il configure),
ma e' sconsigliato, viene disabilitato il supporto per archivi compressi con pg_dump e pg_restore

Sufficente spazio su disco, i sorgenti decompressi e scompattati richiedono circa 65MB si spazio disco,
l'installazione richiede circa 15MB. Un database vuoto occupa circa 25MB.

Scaricare i sorgenti di PostgreSQL da sito ufficiale www.postgresql.org/download
o dai numerosi mirrors, al momento l'ultima versione disponibile del ramo 8.1 e' la 8.1.3

Decomprimere e scompattare i sorgenti appena scaricati (circa 14MB)

$ tar xvfz postgresql-8.1.3.tar.gz

verra' creata la directory postgresql-8.1.3, spostarsi nella directory

$ cd postgresql-8.1.3
INSTALLAZIONE

- configurazione:
Il primo passo per l'installazione e' quello di ottimizzare i sorgenti per il nostro sistema e di
scegliere le opzioni che vogliamo inglobare nella nostra installazione, non preoccupatevi, ci pensa
lo script configure a fare tutto il lavoro per voi....pigroni !!
$ ./configure

Il configure esegue una serie di test sul vostro sistema, testa le librerie installate, controlla
le varie opzioni abilitate e segnala eventuali dipendenze o errori riscontrati.
Se tutto e' ok genera i file utilizzati per la ricompilazione con le opzioni scelte.

Nella fase di configure e' possibile utilizzare svariate opzioni da inglobare nella nostra installazione,
dal supporto per le connessione cryptate con OpenSSL, il supporto per l'autenticazione Kerberos 5 al supporto
per il linguaggio di scipting perl PL/Perl.
Per avere la lista completa
$./configure --help

Nella nostra installazione utilizzeremo i parametri di default
$./configure

Ricompilazione

Finita l'esecuzione del configure, se non ci sono errori, passiamo alla
ricompilazione vera e propria dei sorgenti

$ make

l'operazione potrebbe richiedere da 5/30 minuti, dipende dall'hardware in dotazione.
Alla fine della ricompilazione vi troverete la frase

All of PostgreSQL is successfully made. Ready to install

WOW !! il grosso e' fatto

- Installazione

Possiamo finalmente installare i file appena ricompilati, nel caso avete utilizzato un'utente
diverso da root
$ su - root
$ make install

Avendo utilizzato l'installazione standard, tutti i file saranno nella directory /usr/local/psql,
per specificare un percorso diverso, al configure utizzare --prefix=/dove/vogliamo/noi

Fine

Aggiungiamo l'utente postgres al nostro sistema, l'utente e' il super user per PostgreSQL,
l'equivalente di root per il nostro GNU/Linux
$ adduser postgres

Creiamo la directory data, la directory dove PostgreSQl memorizzera le nostre tabelle
$ mkdir /usr/local/pgsql/data

Assegniamo i giusti permessi
$ chown postgres /usr/local/pgsql/data

Come utente postres (super user per PostgreSQL) inizializziamo la nostra directory "data" appena creata

$ su - postgres
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

- Attiviamo il servizio, si parte !!
PostgreSQL e' finalmente installato e pronto per l'utilizzo, attiviamo il servizio.
Nella directory dei sorgenti postgresql-8.1.3/contrib/start-scripts e' presente
lo script "linux" per utenti GNU/Linux, copiamo lo script in /etc/init.d (per utenti Debian) o
nella posizione vogliamo

$ cp postgresql-8.1.3/contrib/start-scripts/linux /etc/init.d/pgsql.server (per utenti Debian)
$ chmod +x /etc/init.d/pgsql.server
$ /etc/init.d/pgsql.server start

Per avviare PostgreSQL al riavvio del sistema, su Debian GNU/Linux utilizzare il
comando update-rc.d, su altri GNU/Linux consultare la documentazione della propria
distribuzione e creare i link nei vari runlevel

$ update-rc.d pgsql.server defaults
Testing

Creiamo il primo database di prova, ed entriamo nella shell di comandi di PostgreSQL

$ su - postgres
$ /usr/local/pgsql/bin/createdb test
$ /usr/local/pgsql/bin/psql test
Welcome to psql 8.1.3, 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
test=#

Siete sul pianeta PostgreSQL

Bibliografia

PostgreSQL 8.1.3 Documentation

Osvaldo Tulini





Commenti

Ritratto di paolo
#1

Inviato da paolo il Sab, 06/05/2006 - 22:47.

Bella guida!

Smile Finalmente Osvaldo ci delizia con questo gioiellino, era da tempo che aspettavamo un tuo segnale.

Sicuramente sarà una guida molto molto utile per i sistemisti, che molte volte sono costretti a lavorare con HW sottodimensionato e quindi ottimizzare al massimo ogni applicazione, ancora di più se questa applicazione è un DBMS della portata di PGSQL.

Grazie per il contributo e spero ce ne siano altri.

Paolo.

Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network



Ritratto di Madman
#2

Inviato da Madman il Dom, 07/05/2006 - 12:26.

Re: Bella guida!

Complimenti! Wink
Ottima guida, spesso la vastità dei repository Debian ci porta ad impigrirci e a dimenticare come si compila un programma dai sorgenti ed una guida come questa aiuta a rinfrescare la memoria. Big Grin

Però non si poteva fare una cosa più alla Debian-way tentando un backport da testing o da unstable? Thinking



Ritratto di osvaldot
#3

Inviato da osvaldot il Mer, 10/05/2006 - 14:31.

Re: Bella guida!

Grazie,
e' il primo articolo che scrivo , mi fa piacere che sia piaciuto almeno a qualcuno...
Di solito non faccio molti esperimenti con le versioni
testing o unstable, a meno che non sia strettamente necessario, mi hai dato cmq una bella idea, appena ho un po' di tempo provio qualcosa di strano...Smile

Ciao
Osvaldo



Ritratto di Luca89
#4

Inviato da Luca89 il Lun, 08/05/2006 - 19:21.

Piccola critica

Non vedo il motivo per cui installare un software in maniera non standard, specialmente un server database che deve essere continuamente aggiornato per motivi di sicurezza, installandolo in questa maniera sarà un casino aggiornarlo, installandolo tramite pacchetti ti basta "apt-get upgrade". Inoltre non hai passato nessuna variabile "CFLAGS" e "CXXFLAGS" al configure, quindi il postgresql compilato da te non credo che differisca molto in prestazioni con quello compilato dagli sviluppatori debian. Wink



Ritratto di paolo
#5

Inviato da paolo il Lun, 08/05/2006 - 22:50.

Re: Piccola critica

Da sistemista ti rispondo che invece è Guida utlissima, puo capitare che si ha bisogno di una versione specifica dei server DBMS per far girare una qualsiasi applicazione, inoltre è un ottimo punto di partenza per chi vuole tentare di ottimizzare passando al compilatore le giuste configurazioni.

Insomma, sono comodi i pacchetti gia pronti, ma in alcuni casi si rende necessario ricorrere anche alla buona vecchia compilazione.

Paolo

Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network



Ritratto di Luca89
#6

Inviato da Luca89 il Mer, 10/05/2006 - 17:56.

Re: Piccola critica

Quote:

Da sistemista ti rispondo che invece è Guida utlissima, puo capitare che si ha bisogno di una versione specifica dei server DBMS per far girare una qualsiasi applicazione

non dovrebbero esserci sui repository debian i vecchi *.deb? o src.deb?

Quote:

inoltre è un ottimo punto di partenza per chi vuole tentare di ottimizzare passando al compilatore le giuste configurazioni.

bhe si, come guida indroduttiva alla compilazione di un software da sorgente va più che bene, non c'è dubbio.

Quote:

Insomma, sono comodi i pacchetti gia pronti, ma in alcuni casi si rende necessario ricorrere anche alla buona vecchia compilazione.

Sicuro, però secondo me è meglio sempre sfruttare il sistema di pacchettettizazione della propria distribuzione quindi ricompilare il src.deb in debian, il src.rpm in red hat, l'ebuild in gentoo e così via.

Quote:

Di solito non faccio molti esperimenti con le versioni

Se esce una nuova revisione che corregge bachi di sicurezza hai poco da fare, o aggiorni o rendi il sistema vulnerabile.

Quote:

per alcuni servizi uso i.deb per altri (quasi tutti) preferisco ricompilare, qualche anno fa' veci dei test per verificare la cosa piu' veloce/affidabile/manegevole
da fare, a mio giudizio per alcuni servizi il .deb e' perffetto (tipo ssh) per altri (tipo PostgreSQL/Apache/Php..) e' meglio ricompilare

tanto vale che usi gentoo allora. mantenere un sistema con tanti programmi compilati from scratch non credo sia una passeggiata.

P.S: sia ben chiaro che non voglio accendere alcun flame, voglio solo esprimere le mie opinioni/critiche e spero che siano costruttive.



Ritratto di osvaldot
#7

Inviato da osvaldot il Sab, 13/05/2006 - 16:10.

Re: Piccola critica

>tanto vale che usi gentoo allora. mantenere un >sistema con tanti programmi compilati from scratch > non credo sia una passeggiata.

La gentoo non l'ho mai provata, cerchero' di provarla presto.
Utilizzo il misto .deb/scratch da alcuni anni, per il momento mi e' sempre andata bene, (ncrociando le dita Smile, non e' detto che sia la tecnica migliore

>P.S: sia ben chiaro che non voglio accendere >alcun flame, voglio solo esprimere le mie >opinioni/critiche >e spero che siano costruttive.

Per me non ci sono problemi, non so' se gli admin
la prendono male..., le critiche/opinioni ed i confronti sono sempre costruttivi, dal mio punto di vista.



Ritratto di paolo
#8

Inviato da paolo il Ven, 19/05/2006 - 18:41.

Re: Piccola critica

E' normale che non ci sono problemi, la critica e il confronto non possono che essere positivi, ovviamente se fatte con intelligenza, come succede sempre qui su debianitalia.

Comunque, per me la Guida è buona da usare come punto di partenza, inoltre non è vero che i backport ci siamo sempre tutti e di tutte le versioni e inoltre si puo tranquillamente usare Debian e compilarsi a mano ogni cosa pur mantenendo tutto il resto del sistema pulito e con i tool di gestione a cui siamo abituati.

Ognuno tragga le sue conclusioni da questa Guida, per me è buona.

Paolo

Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network



Ritratto di osvaldot
#9

Inviato da osvaldot il Mer, 10/05/2006 - 14:57.

Re: Piccola critica

Grazie per la critica,
affettivamente non ho utilizzato opzioni particolari, ne
ho cercato di tirare all'osso PostgreSQL ,
l'intenzione era farlo in una giuda successiva in cui si scava piu' a fondo, volevo fare una cosa graduale.

Per l'nstallazione dai .deb sono parzialmente daccordo, secondo me quando metti in piedi un server, fai delle scelte che dipendono dai servizi e dalle prestazioni che vuoi/devi ottenere, per alcuni servizi uso i.deb per altri (quasi tutti) preferisco ricompilare, qualche anno fa' veci dei test per verificare la cosa piu' veloce/affidabile/manegevole
da fare, a mio giudizio per alcuni servizi il .deb e' perffetto (tipo ssh) per altri (tipo PostgreSQL/Apache/Php..) e' meglio ricompilare

Grazie
Osvaldo



Ritratto di Henryx
#10

Inviato da Henryx il Ven, 12/05/2006 - 12:21.

Re: Piccola critica

Personalmente vedo una buona guida, ma perfettamente inutile in ambiente Debian. Posto che un compilatore su di un server e' pericoloso, se devo ricompilare un applicativo uso direttamente apt-get (no, non ho ho sbagliato a scrivere)

Henryx