En esta sección se detalla como se debe proceder para instalar en un GNU/Linux debian los paquetes necesarios para usar postgreSQL con ruby, se asume que postgreSQL ya está instalado como así también rubygems.
Para Debian hay que instalar un paquete llamado postgresql-8.3-plruby.
Para la instalación se procede como con cualquier otro paquete.
Con un usuario normal se debe ejecutar lo siguiente:
rafael@ajax:~$ sudo apt-get install postgresql-8.3-plruby
con el usuario root se procede de la siguiente forma:
ajax:~# apt-get install postgresql-8.3-plruby
Despues de la intalación del paquete se requiere la ejecución del script: /usr/share/postgresql-8.3-plruby/plruby.sql
para esto hay que ejecutar psql con el usuario normal y ejecutar lo siguiente:
template1=# \i /usr/share/postgresql-8.3-plruby/plruby.sql
Ahora se puede comprobar que el lenguaje está correctamente instalado ejecutando:
template1=# SELECT * FROM pg_language;
La salida debería ser similar a la siguiente:
lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | lanvalidator | lanacl ----------+----------+---------+--------------+---------------+--------------+-------- internal | 10 | f | f | 0 | 2246 | c | 10 | f | f | 0 | 2247 | sql | 10 | f | t | 0 | 2248 | plruby | 10 | t | t | 16384 | 0 | (4 filas)
La forma mas fácil es hacerla con rubygems.
En primer lugar se recomienda comprobar la disponibilidad del módulo:
ajax:~# gem search pg --remote
la salida debería ser similar a la siguiente:
*** REMOTE GEMS *** backupgem (0.0.11) capgem (0.1) dbd-pg (0.3.5) DepGraph (0.10.0) pg (0.7.9.2008.10.13) ruby-gpgme (1.0.1) ruby-pg (0.7.9.2008.01.28)
La instalación con el usuario root se hace de la siguiente forma:
ajax:~# gem install pg --remote
Si esto falla entonces habrá que verificar si están instalados los paquetes:
Nota: verique las versiones que tiene instalada en su sistema.
La configuración que se detalla en esta sección solo se recomienda para un entorno de pruebas, no use esto para configurar un entorno de trabajo serio.
Se debe modificar el archivo de configuración pg_hba.conf
ajax:/etc/postgresql/8.3/main# vi pg_hba.conf
Encuentre las siguientes líneas (casi al final del archivo) y coloque un numeral (#) para que quede de la siguiente forma
# "local" is for Unix domain socket connections only #local all all ident sameuser
duplique la linea comentada deje el archivo de esta manera
# "local" is for Unix domain socket connections only local all all crypt #la siguiente es la linea original #local all all ident sameuser
Conectesé a la base de datos y coloque una password al usuario que usa generalmente (yo uso postgres)
postgres@ajax:~$ psql template1
Bienvenido a psql 8.3.4, la terminal interactiva de PostgreSQL.
Digite: \copyright para ver los términos de distribución
\h para ayuda de órdenes SQL
\? para ayuda de órdenes psql
\g o punto y coma («;») para ejecutar la consulta
\q para salir
template1=# ALTER USER postgres WITH PASSWORD 'pwdxyz';
ALTER ROLE