Instalación de Ruby on Rails con PostgreSQL en Ubuntu

   
domingo, octubre 08 2006 @ 08:26 ART
Actualmenteestoy desarrollando una aplicación web con Ruby on Rails para el grupode investigación en el cual trabajo. Estoy usando la base datosPostgreSQL, el RCS (Revision Control System) Subversion y el servidorHTTP Mongrel. Todo bajo Ubuntu Dapper, aunque en el servidor del grupousamos Debian Sarge.

Aquí publico para referencia futura la instalación y configuración delas principales aplicaciones que uso para el desarrollo de laaplicación con Ubuntu Dapper, aunque hay cosas que aplican a cualquierdistribución de Linux.

1.Instalamos el paquete básico para compilar aplicaciones enDebian/Ubuntu, la librería libreadline5-dev requerida para compilarRuby con el shell interactivo (IRB) y la librería zlib1g-dev que esrequerida por el administrador de paquetes (gems) de Ruby, RubyGems.
sudo apt-get install build-essential libreadline5-dev zlib1g-dev

2. Ahora vamos a instalar la base de datos PostgreSQL 8
sudo apt-get install postgresql-8.0

3. Luego asignamos una constraseña al superusuario ‘postgres’:
sudo passwd postgres

3. Configuramos la forma de autenticación para conectarnos a la base dedatos. Esto, en PostgreSQL, se hace editando el archivo/etc/postgresql/8.0/main/pg_hba.conf y nos aseguramos de que esténpresentes las siguientes líneas:
local all postgres ident sameuser
local all all md5 sameuser
host all all 127.0.0.1 255.0.0.0 md5 sameuser
host all all 0.0.0.0 0.0.0.0 reject

Esta configuración nos permite conectarnos a la base de datos como elsuperusuario ‘posgres’ sólo cuando estemoslogueados como tal en el sistema, y permite conexiones locales por Unixsockets y por TCP/IP siempre y cuando intentemos conectarnos a una basede datos con el mismo nombre de usuario. Es decir, que para acceder auna base de datos llamada ‘mydatabase’ debemoscrear un usuario ‘mydatabase’ con el passwordcorrespondiente.

Para que los cambios surtan efecto debemos reiniciar el servicio de PostgreSQL
sudo /etc/init.d/postgresql restart

4. Instación de Ruby 1.8.4 desde las fuentes
wget http://rubyforge.org/frs/download.php/7858/ruby-1.8.4.tar.gz
tar xvfz ruby-1.8.4.tar.gz
cd ruby-1.8.4
./configure --prefix=/usr/local/ruby-1.8.4
make
sudo make install
sudo make install-doc
ln -s /usr/local/ruby-1.8.4 /usr/local/ruby-site

De esta forma podremos tener a la vez varias versiones de Rubycompiladas en nuestro sistema en /usr/local/ruby-VERSION y cambiar laque deseemos usar modificando el enlace simbólico /usr/local/ruby-site

Para que el ejecutable de Ruby esté disponible en el PATH para todoslos usuarios del sistema agregamos la siguiente línea al archivo/etc/bash.bashrc
export PATH=/usr/local/ruby-site/bin:$PATH

5. Instalar Rubygems (ultima versión 0.9.0 al momento de escribir esta entrada). Descargar las fuentes y luego:
tar xvfz rubygems-0.9.0.tar.gz
cd rubygems-0.9.0
ruby setup.rb config --prefix=/usr/local/ruby-site
ruby setup.rb setup
ruby setup.rb install

6. Instalar rails, mongrel, postgres-pr, a través del gestor de paquetes rubygems
sudo gem install rails --include-dependencies
sudo gem install mongrel --include-dependencies
sudo gem install postgres-pr --include-dependencies

7. Crear la base de datos para la aplicación de Rails
su - postgres
createuser -P project_name
createdb -U projectname projectname

8. Crear un script para iniciar Mongrel al inicio del sistema. Copiar las siguientes líneas en /etc/init.d/mongrel_projectname
#!/bin/bash
# description: Startup script for mongrel

PATH=/usr/local/ruby-site/bin/:$PATH
BASEDIR=path_to_your_web_app
case "$1" in
start)
echo "starting up mongrel in $BASEDIR"
cd $BASEDIR
mongrel_rails start -d >> /var/log/messages 2>&1 &
;;
stop)
echo "stopping mongrel"
cd $BASEDIR
mongrel_rails stop
;;
restart)
echo "restarting mongrel"
cd $BASEDIR
mongrel_rails stop
sleep 3
mongrel_rails start -d >> /var/log/messages 2>&1 &
;;
esac

Y adicionar el script a la secuencia de inicio:
chmod u+x /etc/init.d/mongrel_projectname
update-rc.d mongrel_projectname defaults
/etc/init.d/mongrel_projectname start

9. Instalar PhpPgAdmin para administrar las bases de datos con interfaz web.
sudo apt-get install phppgadmin
sudo ln -s /etc/phppgadmin/apache.conf /etc/apache2/sites-enabled/phppgadmin
sudo /etc/init.d/apache2 restart

10. Por último un enlace (http://www.radrails.org/blog/2006/9/18/installing-radrails-on-ubuntu-dapper) a un excelente tutorial para instalar el IDE RadRails.
09-04 05:50