<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Database-SQL-RDBMS HOW-TO document for Linux (PostgreSQL Object Relational Database System): Istruzioni per un'installazione rapida di PostgreSQL </TITLE> <LINK HREF="PostgreSQL-HOWTO-7.html" REL=next> <LINK HREF="PostgreSQL-HOWTO-5.html" REL=previous> <LINK HREF="PostgreSQL-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="PostgreSQL-HOWTO-7.html">Avanti</A> <A HREF="PostgreSQL-HOWTO-5.html">Indietro</A> <A HREF="PostgreSQL-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="Installazione-Rapida"></A> <A NAME="s6">6. Istruzioni per un'installazione rapida di PostgreSQL </A></H2> <P>PostgreSQL si pronuncia Post-gres-chiu-el (Postgres-QL), e <B>non</B> Postgre-es-chiu-el. <P>Questo capitolo vi aiuterà ad installare e a lanciare il database molto rapidamente: in meno di 5 minuti. <P> <H2><A NAME="ss6.1">6.1 Installazione e Collaudo</A> </H2> <P>Installazione, Collaudo, Verifica, e lancio di PostgreSQL, in pochi passi. Effettuate il login come root. <HR> <PRE> # cd /mnt/cdrom/RedHat/RPMS # man rpm # ls postgre*.rpm # rpm -qpl postgre*.rpm | less (per vedere la lista dei file) # rpm -qpi postgre*.rpm (per vedere le informazioni dei pacchetti) # cat /etc/passwd | grep postgres </PRE> <HR> Nota: Se esiste un utente "postgres", potreste dover fare backup dei suoi file, cancellare la home directory di postgres, ~postgres, e poi dovreste eliminare l'utente unix "postgres"; oppure potreste rinominarlo come "postgres2", o qualcosa di simile. L'installazione deve essere realizzata come se fosse la prima volta. <HR> <PRE> # rpm -i postgre*.rpm (per installare tutti i pacchetti dei client, di sviluppo, dei dati, e quelli principali per il funzionamento di pgaccess) # man chkconfig # chkconfig --add postgresql (per avviare pg in fase di boot) # /etc/rc.d/init.d/postgresql start (per avviare postgres) # man xhost # xhost + (affinché pgaccess abbia accesso al display) # su - postgres bash$ man createdb bash$ createdb miodatabase bash$ man psql bash$ psql miodatabase ..... in psql, premete i tasti freccia su/giù per utilizzare lo storico dei comandi; oppure usate il comando \s bash$ export DISPLAY=<nomehost>:0.0 bash$ man pgaccess bash$ pgaccess miodatabase </PRE> <HR> Adesso potete cominciare a <B>SPARARE</B> comandi SQL in psql o in pgaccess !! <HR> <PRE> bash$ cd /usr/doc/postgresql* </PRE> <HR> Qui potete leggere tutte le FAQ, i tutorial, e le guide per l'Utente, il Programmatore, l'Amministratore. <H2><A NAME="ss6.2">6.2 RPM di PostgreSQL</A> </H2> <P>Vedere anche <I>"Installation Steps"</I> presso <A HREF="http://www.ramifordistat.net/postgres">http://www.ramifordistat.net/postgres</A><P>Il curatore degli RPM di PostgreSQL è Lamar Owen, la cui e-mail è <A HREF="mailto:lamar.owen@wgcr.org">lamar.owen@wgcr.org</A>. Altri dettagli su PostgreSQL si trovano nel sito <A HREF="http://www.postgresql.org">http://www.postgresql.org</A><H2><A NAME="ss6.3">6.3 Maximum RPM</A> </H2> <P>Per effettuare buone installazioni di PostgreSQL, familiarizzate con il gestore dei pacchetti RPM. Scaricate il testo 'Maximum RPM' dal sito <A HREF="http://www.RPM.org">http://www.RPM.org</A>, e cercate il file di nome maximum-rpm.ps.gz Leggetelo in Linux usando il comando gv : <HR> <PRE> # gv maximum-rpm.ps.gz </PRE> <HR> Esiste anche rpm2deb, che converte i pacchetti RPM in pacchetti per Debian. <H2><A NAME="RPM degli Esempi"></A> <A NAME="ss6.4">6.4 RPM degli Esempi </A> </H2> <P>Gli esempi sono necessari per il collaudo delle varie interfacce al PostgreSQL. Installate la directory degli esempi di postgresql da : <UL> <LI> Linux cdrom - postgresql-*examples.rpm</LI> <LI> postgresql-*examples.rpm dal sito <A HREF="http://www.aldev.8m.com">http://www.aldev.8m.com</A> e dai siti mirror <A HREF="http://aldev.webjump.com">webjump</A>, <A HREF="http://www.angelfire.com/nv/aldev">angelfire</A>, <A HREF="http://www.geocities.com/alavoor/index.html">geocities</A>, <A HREF="http://aldev.virtualave.net">virtualave</A>, <A HREF="http://aldev.bizland.com">bizland</A>, <A HREF="http://members.theglobe.com/aldev/index.html">theglobe</A>, <A HREF="http://members.spree.com/technology/aldev">spree</A>, <A HREF="http://homepages.infoseek.com/~aldev1/index.html">infoseek</A>, <A HREF="http://www3.bcity.com/aldev">bcity</A>, <A HREF="http://aldev.50megs.com">50megs</A> </LI> <LI> Il codice sorgente di PostgreSQL è nei file postgresql*.src.rpm, e contiene le directory degli esempi, delle prove, e dei tutorial.</LI> </UL> <H2><A NAME="Provare PyGreSQL"></A> <A NAME="ss6.5">6.5 Provare PyGreSQL - interfaccia a Python </A> </H2> <P>Installate il pacchetto degli esempi, come in <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; poi digitate: <HR> <PRE> bash$ cd /usr/lib/pgsql/python bash$ createdb thilo bash$ psql thilo thilo=> create table prova (aa char(30), bb char(30) ); thilo=> \q bash$ /usr/bin/python >>> import _pg >>> db = _pg.connect('thilo', 'localhost') >>> db.query("INSERT INTO prova VALUES ('ping', 'pong')") >>> db.query("SELECT * FROM prova") eins|zwei ----+---- ping|pong (1 row) >>>CTRL+D bash$ ..... Sembra funzionare - adesso installatelo opportunamente bash$ su - root #cp /usr/lib/pgsql/python/_pg.so /usr/lib/python1.5/lib-dynload </PRE> <HR> <H2><A NAME="Provare Perl"></A> <A NAME="ss6.6">6.6 Provare Perl - interfaccia al Perl </A> </H2> <P>Installate il pacchetto degli esempi, come in <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; poi digitate: <HR> <PRE> root# chown -R postgres.postgres /var/lib/pgsql/examples bash$ cd /var/lib/pgsql/examples/perl5 bash$ perl ./example.pl </PRE> <HR> Nota: Se il comando precedente non funziona, fate quel che segue. La variabile globale @INC dovrebbe includere il modulo Pg.pm nella directory site_perl, e poi deve essere usata l'opzione -I <HR> <PRE> bash$ perl -I/usr/lib/perl5/site_perl/5.005/i386-linux-thread ./example.pl </PRE> <HR> .... Ora potete far girare programmi perl con accesso al database PostgreSQL!! <P>Leggete il file example.pl per usare l'interfaccia a Perl. <H2><A NAME="Provare libpq"></A> <A NAME="ss6.7">6.7 Provare le interfacce a libpq, libpq++ </A> </H2> <P>Installate il pacchetto degli esempi, come in <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; poi digitate: <HR> <PRE> root# chown -R postgres.postgres /var/lib/pgsql/examples bash$ cd /var/lib/pgsql/examples/libpq bash$ gcc testlibpq.c -I/usr/include/pgsql -lpq bash$ export PATH=$PATH:. bash$ a.out bash$ cd /var/lib/pgsql/examples/libpq++ bash$ g++ testlibpq0.cc -I/usr/include/pgsql -I/usr/include/pgsql/libpq++ -lpq++ -lpq -lcrypt bash$ ./a.out (Nota: Ignorate gli eventuali Messaggi di Errore, come segue) > create table foo (aa int, bb char(4)); No tuples returned... status = 1 Error returned: fe_setauthsvc: invalid name: , ignoring... > insert into foo values ('4535', 'vasu'); No tuples returned... status = 1 Error returned: fe_setauthsvc: invalid name: , ignoring... > select * from foo; aa |bb | -----|-----| 4535 |vasu | Query returned 1 row. > >CTRL+D bash$ </PRE> <HR> .... Ora potete far girare interfacce al database PostgreSQL, scritte in C/C++ !! <H2><A NAME="Provare Java"></A> <A NAME="ss6.8">6.8 Provare Interfacce a Java </A> </H2> <P>Installate il pacchetto degli esempi, come in <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; installate anche quel che segue: <UL> <LI> Prelevate JDK jdk-*glibc*.rpm presso <A HREF="ftp://ftp.redhat.com/pub/contrib/i386">ftp://ftp.redhat.com/pub/contrib/i386</A> o presso <A HREF="http://www.blackdown.org">http://www.blackdown.org</A></LI> <LI> Prelevate postgresql-jdbc-*.rpm <A HREF="ftp://ftp.redhat.com/pub/contrib/i386">ftp://ftp.redhat.com/pub/contrib/i386</A></LI> </UL> <HR> <PRE> root# chown -R postgres.postgres /var/lib/pgsql/examples bash$ cd /var/lib/pgsql/examples/jdbc bash$ echo $CLASSPATH --> Dovrebbe visualizzare CLASSPATH=/usr/lib/pgsql/jdbc7.0-1.2.jar:.:/home/java/jdk1.2.2/lib:/usr/lib/pgsql:/usr/lib/pgsql/classes.zip:/usr/lib/pgsql/pg.jar con l'appropriato numero di versione di jdbc*.jar. Le directory /usr/lib/pgsql e /usr/libjdk*/lib dovrebbero contenere i file *.jar. bash$ export CLASSPATH=/usr/lib/pgsql/jdbc7.0-1.2.jar:.:/home/java/jdk1.2.2/lib:/usr/lib/pgsql:/usr/lib/pgsql/classes.zip:/usr/lib/pgsql/pg.jar Aprite in edit il file psql.java, e commentate la linea del 'package'. bash$ javac psql.java bash$ java psql jdbc:postgresql:template1 postgres < password >[1] select * from pg_tables; tablename tableowner hasindexes hasrules pg_type postgres true false false pg_attribute postgres true false false [2] CTRL+C bash$ </PRE> <HR> .... Ora fate girare interfacce Java al database PostgreSQL! <H2><A NAME="Provare ecpg"></A> <A NAME="ss6.9">6.9 Provare l'interfaccia a ecpg </A> </H2> <P>Installate il pacchetto degli esempi, vedere <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; poi digitate: <HR> <PRE> root# chown -R postgres.postgres /var/lib/pgsql/examples bash$ cd /var/lib/pgsql/examples/ecpg bash$ ecpg test1.pgc -I/usr/include/pgsql bash$ cc test1.c -I/usr/include/pgsql -lecpg -lpq -lcrypt bash$ createdb mm bash$ ./a.out </PRE> <HR> .... Adesso potete far girare Embedded "C"-SQL col database PostgreSQL! <P> <H2><A NAME="Provare SQL"></A> <A NAME="ss6.10">6.10 Provare esempi di SQL - Tipi definiti dall'utente e funzioni </A> </H2> <P>Installate il pacchetto degli esempi, vedere <A HREF="#RPM degli Esempi">RPM degli Esempi</A> ; poi digitate: <HR> <PRE> root# chown -R postgres.postgres /var/lib/pgsql/examples bash$ cd /var/lib/pgsql/examples/sql Sezione in ampliamento.. </PRE> <HR> <H2><A NAME="ss6.11">6.11 Provare Interfacce Tcl/Tk</A> </H2> <P>Un esempio di interfaccia Tcl/Tk è il programma pgaccess. Leggete il file /usr/bin/pgaccess utilizzando un editor: <HR> <PRE> bash$ view /usr/bin/pgaccess bash$ export DISPLAY=<nome_della_vostra_macchina>:0.0 bash$ createdb miodb bash$ pgaccess miodb </PRE> <HR> <H2><A NAME="ss6.12">6.12 Provare interfacce ODBC</A> </H2> <P> <OL> <LI> Prelevate il driver odbc pgsql per win32 presso <A HREF="http://www.insightdist.com/psqlodbc/">http://www.insightdist.com/psqlodbc/</A></LI> <LI> Vedere anche /usr/lib/libpsqlodbc.a </LI> </OL> <H2><A NAME="ss6.13">6.13 Provare l'interfaccia MPSQL Motif-worksheet</A> </H2> <P>Prelevare gli RPM presso <A HREF="http://www.mutinybaysoftware.com">http://www.mutinybaysoftware.com</A><H2><A NAME="ss6.14">6.14 Verifica</A> </H2> <P>Per verificare l'eccellente qualità di PostgreSQL, lanciate il pacchetto del test di Regressione. <P>Effettuate il login come root: <HR> <PRE> # rpm -i postgresql*test.rpm E leggete il file README, o installate l'albero del codice sorgente con la directory regress # rpm -i postgresql*.src.rpm # cd /usr/src/redhat/SPECS # more postgresql*.spec (per vedere quali pacchetti RPM di sistema debbano essere installati # rpm -bp postgresql*.spec (.. questo preparerà il pacchetto) Al test della regressione servono i Makefile, e qualche file header come *fmgr*.h, che possono essere creati con: # rpm --short-circuit -bc postgresql*.spec ( .. usate l'opzione 'short circuit' come scorciatoia!) Quando leggete 'make -C common SUBSYS.o', fermate la creazione del Makefile con CRTL+C. Ora la configurazione è terminata con successo, e tutti i makefile e gli header sono stati creati. Non dovete intervenire in altro modo. # cd /usr/src/redhat/BUILD # chown -R postgres postgresql* # su - postgres bash$ cd /usr/src/redhat/BUILD/postgresql-6.5.3/src/test/regress bash$ more README bash$ make clean; make all runtest bash$ more regress.out </PRE> <HR> <H2><A NAME="ss6.15">6.15 Correzione dei bug critici</A> </H2> <P>Patch di emergenza, per la correzione dei bug critici, possono essere rilasciate dopo la release GA di PostgreSQL. Potete applicare queste patch opzionali a seconda delle necessità delle vostre applicazioni. Seguite i seguenti passi per applicare le patch: Spostatevi nella directory dei sorgenti di postgresql <BLOCKQUOTE><CODE> <PRE> # rpm -i postgresql*.src.rpm # cd /usr/src/postgresql6.5.3 # man patch # patch -p0 < file_di_patch # make clean # make </PRE> </CODE></BLOCKQUOTE> I file di patch sono posizionati presso <UL> <LI>Le patch di PostgreSQL: <A HREF="ftp://ftp.postgresql.org/pub/patches">ftp://ftp.postgresql.org/pub/patches</A></LI> </UL> <HR> <A HREF="PostgreSQL-HOWTO-7.html">Avanti</A> <A HREF="PostgreSQL-HOWTO-5.html">Indietro</A> <A HREF="PostgreSQL-HOWTO.html#toc6">Indice</A> </BODY> </HTML>