# Installazione della gemma 'postgres'

**URL:** <https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555>\
**Category:** IT\
**Created:** [October 9, 2006, 10:11pm UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555 "2006-10-09T22:11:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [October 9, 2006, 10:11pm UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/1 "2006-10-09T22:11:00Z")

</div>

Ciao a tutti,

Sono ai primi passi sia nell’uso di Ruby che di PostgreSQL, perciÃ²  
scusate la domanda, forse un po’ banale, ma a cui non ho finora trovato  
risposta nelle mie ricerche sul web.

Ho installato Ruby ver. 1.8.5 and PostgrSQL 8.1, sul mio PC con S.O.  
Windows XP Pro SP2.  
Sto tentando di installare la gemma ‘postrgres’ tramite il RubyGems  
Package Manager, senza alcun successo. Quello che segue Ã¨ l’esito del  
mio tentativo. Spero che qualcuno di voi abbia una soluzione al mio  
problema.

Marco S.

===============================================================

c:\ruby\>gem install postgres  
Bulk updating Gem source index for: [http://gems.rubyforge.org](http://gems.rubyforge.org)  
Building native extensions. This could take a while…  
\*\*\* extconf.rb failed \*\*\*  
Could not create Makefile due to some reason, probably lack of  
necessary libraries and/or headers. Check the mkmf.log file for more  
details. You may need configuration options.

Provided configuration options:  
–with-opt-dir  
–without-opt-dir  
–with-opt-include  
–without-opt-include=${opt-dir}/include  
–with-opt-lib  
–without-opt-lib=${opt-dir}/lib  
–with-make-prog  
–srcdir=.  
–curdir  
–ruby=c:/ruby/bin/ruby  
–with-pgsql-dir  
–without-pgsql-dir  
–with-pgsql-include  
–without-pgsql-include=${pgsql-dir}/include  
–with-pgsql-lib  
–without-pgsql-lib=${pgsql-dir}/lib  
–with-wsock32lib  
–without-wsock32lib  
–with-socketlib  
–without-socketlib  
–with-inetlib  
–without-inetlib  
–with-nsllib  
–without-nsllib

ERROR: While executing gem … (RuntimeError)  
ERROR: Failed to build gem native extension.  
Gem files will remain installed in  
c:/ruby/lib/ruby/gems/1.8/gems/postgres-0.7.1 for inspection.

Results logged to  
c:/ruby/lib/ruby/gems/1.8/gems/postgres-0.7.1/gem\_make.out

c:\ruby\>

---

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [October 9, 2006, 10:34pm UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/2 "2006-10-09T22:34:52Z")

</div>

On 10/9/06, Marco S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> c:\ruby\>gem install postgres

Stai utilizzando la versione ‘nativa’ del driver Postgres  
che richiede i sorgenti del programma e l’ambiente di  
compilazione, che in Windows non è disponibile di default.

Ti consiglio di utilizzare la versione ‘solo ruby’ del driver:

gem install postgres-pr

Ciao.  
– fabio

---

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [October 10, 2006, 9:19am UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/3 "2006-10-10T09:19:59Z")

</div>

On 10/10/06, Marco S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Ragionando un po’ da profano mi veniva in mente un piccolo dubbio  
> sull’utilizzo delle Gemme in generale. Sviluppare soluzioni con di  
> questo tipo di librerie significa anche dare una grande fiducia ai  
> manutentori delle stesse. Se in questo caso PostgreSQL si evolve a  
> versioni successive, io che sviluppo un applicativo utilizzando  
> postgres-ps devo sperare che questa venga mantenuta compatibile con le  
> ultime versioni del database, o restare ancorato a quelle vecchie.
> 
> C’è questo tipo di pericolo?

Il pericolo c’è, ma è attenuato dal fatto che - sia nel caso di Postgres  
che per il suo driver Ruby - si tratta di software open source.  
Nell’ipotesi  
che tu hai descritto è ragionevole pensare che qualcun altro continui  
lo sviluppo in senso evolutivo. E’ il principale vantaggio dell’open  
source.

Ciao.  
– fabio

---

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [October 10, 2006, 9:02am UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/4 "2006-10-10T09:02:35Z")

</div>

Grazie infinite, Fabio.

Ho installato la libreria e fatto anche un piccolo test.  
Tutto sembra funzionare bene.

Ragionando un po’ da profano mi veniva in mente un piccolo dubbio  
sull’utilizzo delle Gemme in generale. Sviluppare soluzioni con di  
questo tipo di librerie significa anche dare una grande fiducia ai  
manutentori delle stesse. Se in questo caso PostgreSQL si evolve a  
versioni successive, io che sviluppo un applicativo utilizzando  
postgres-ps devo sperare che questa venga mantenuta compatibile con le  
ultime versioni del database, o restare ancorato a quelle vecchie.

C’Ã¨ questo tipo di pericolo?

Saluti,

Marco

---

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [March 23, 2007, 12:37pm UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/5 "2007-03-23T12:37:25Z")

</div>

Ciao scusa per il disturbo come da tua richiesta di aiuto del 9 Ottobre  
2006, nelle Tue stese condizioni ho anche io installato la gemma di  
postgreSql come da risposta di Fabio Inguaggiato .  
Sto programmando un gestionale con Ruby/Gtk per un’Azienda e nello  
specifico devo implementare una rubrica telefonica.  
Mi indicheresti, gentilmente, come accedere al DataBase e come inserire  
e prelevare dei campi?  
Grazie

```
                                Biagio
```

---

<div class="post-metadata">

**Author:** ![marcos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9de0a6/32.png) [@marcos](https://www.ruby-forum.com/u/marcos)\
**Post date:** [March 27, 2007, 3:19pm UTC](https://www.ruby-forum.com/t/installazione-della-gemma-postgres/71555/6 "2007-03-27T15:19:22Z")

</div>

Ricciardi Biri wrote:

> Ciao scusa per il disturbo come da tua richiesta di aiuto del 9 Ottobre  
> 2006, nelle Tue stese condizioni ho anche io installato la gemma di  
> postgreSql come da risposta di Fabio Inguaggiato .  
> Sto programmando un gestionale con Ruby/Gtk per un’Azienda e nello  
> specifico devo implementare una rubrica telefonica.  
> Mi indicheresti, gentilmente, come accedere al DataBase e come inserire  
> e prelevare dei campi?  
> Grazie
> 
> ```
> Biagio
> 
> ```

Ciao Biagio,

scusa se rispondo con molto ritardo alla tua domanda,  
ma poichÃ¨ Ã¨ un vecchio thread, non lo stavo piÃ¹ seguendo  
e ho notato la tua richiesta solo oggi.

Provo a fornirti un esempio di inserimento di un nuovo record  
nell tabella ‘prodotti’ di un database chiamato ‘mydb’ a cui accedo  
come utente ‘postgres’ con password ‘strmcr’.  
Nella tabella ho definito solo 3 campi:

1. ‘product\_no’ di tipo integer
2. ‘name’ di tipo text
3. ‘price’ di tipo numeric

# CODICE RUBY:

require ‘postgres’

begin  
dbh = PGconn.new(“127.0.0.1”, 5432, “”, “”, “mydb”, “postgres”,  
“strmcr”)  
dbh.query(“BEGIN;”)  
dbh.query(“INSERT INTO prodotti VALUES (‘5’,‘Dentifricio’, ‘3.25’);”)  
dbh.query(“COMMIT;”)  
puts “Articolo inserito”  
dbh.close  
rescue PGError =\> e  
puts e.message  
dbh.query(“ROLLBACK;”)  
end

==========================================

Con questa query invece stampi tutti e tre i campi di tutti i record  
della tabella.

require ‘postgres’

begin  
dbh = PGconn.new(“127.0.0.1”, 5432, “”, “”, “mydb”, “postgres”,  
“strmcr”)  
resultset = dbh.query(“SELECT \* FROM prodotti;”)  
resultset.each { |row| puts “#{row[0]} - #{row[1]} - #{row[2]}” }  
dbh.close  
rescue PGError =\> e  
puts e.message  
dbh.close  
end

==========================================

Sono alle prime armi sia con Ruby che con Postgres, ma spero  
di averti dato qualche idea.  
Dai un occhiata al bellissimo libro in italiano di Marco C.  
dove trovi trattato anche questo argomento.

Saluti,

Marco
