- ¿Qué es Ruby?
Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro Matsumoto y distribuido bajo licencias libres. Combina una sintaxis inspirada en Python y Perl, con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU - ¿Qué es Ruby on Rails?
Ruby on Rails (RoR o Rails) es un entorno de desarrollo web de código abierto escrito en Ruby y optimizado para satisfacción de los programadores y de la productividad. Te permite escribir aplicaciones web siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC) y su filosofía principal es: Favorecer la convención antes que la configuración - ¿Qué son las Gemas de Ruby o Ruby Gems?
Las Gemas son paquetes autocontenidos utilizados por Ruby oficialmente para distribuir librerías y aplicaciones. Son empleadas por Rails para la instalación de su entorno - ¿En qué consiste la arquitectura MVC?
En pocas palabras podemos decir que la arquitectura MVC separa una aplicación en 3 capas: el Modelo, la Vista y el Controlador. El Modelo trabaja directamente con las fuentes de datos (bases de datos, sockets, etc) y es el encargado de la integridad de la información. La Vista es la interfaz que usará la aplicación para interactuar con el usuario y la que se usará para mostrar los datos del modelo. La Vista debe ser "tonta" en el sentido de que no debe tener conocimiento alguno sobre las fuentes de datos, los eventos u otros, solo debe mostrar la información que se le indique. Por último, el controlador es quien maneja los eventos de la aplicación, digamos que es la "pega" entre el Modelo y la Vista; puede interactuar con las funciones del modelo y envía información a la Vista.
Dicho esto empecemos con la instalación del ambiente Ruby on Rails. Las siguientes instrucciones están hechas para Debian Lenny 5.0 e instalarán Ruby 1.8 y Rails 1.2.6.
Instalamos Ruby y todos los paquetes necesarios (como super usuario):
# aptitude update
# aptitude install build-essential ruby ruby1.8-dev ri ri1.8 rdoc rdoc1.8 irb irb1.8 ruby1.8-examples libreadline-ruby libopenssl-ruby libdbi-ruby libdbd-mysql-ruby libdbd-pg-ruby libdbd-odbc-ruby libdbd-sqlite3-ruby libpgsql-ruby libmysql-ruby mysql-server mysql-client
Descargamos los paquetes necesarios para Ruby si no los tenemos (ver la página de RubyForge para más información):
$ wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
$ wget http://rubyforge.org/frs/download.php/26547/activesupport-1.4.4.gem
$ wget http://rubyforge.org/frs/download.php/28328/actionpack-1.13.6.gem
$ wget http://rubyforge.org/frs/download.php/28331/actionmailer-1.3.6.gem
$ wget http://rubyforge.org/frs/download.php/28325/activerecord-1.15.6.gem
$ wget http://rubyforge.org/frs/download.php/28334/actionwebservice-1.2.6.gem
$ wget http://rubyforge.org/frs/download.php/19878/rake-0.7.3.gem
$ wget http://rubyforge.org/frs/download.php/28337/rails-1.2.6.gem
Instalamos el manejador de paquetes de Ruby (RubyGems):
# tar -xvzf rubygems-1.2.0.tgz
# cd rubygems-1.2.0
# ruby setup.rb
# ln -s /usr/bin/gem1.8 /usr/bin/gem
Y por último instalamos las gemas que acabamos de descargar:
# gem install activesupport-1.4.4.gem
# gem install actionpack-1.13.6.gem
# gem install actionmailer-1.3.6.gem
# gem install activerecord-1.15.6.gem
# gem install actionwebservice-1.2.6.gem
# gem install rake-0.7.3.gem
# gem install rails-1.2.6.gem
Es importante destacar que se deben instalar las versiones tal cual como aparecen aquí y en el mismo orden pues son las que funcionan correctamente entre sí.
Para comprobar que todo ha ido bien basta con hacer:
$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
$ rails --version
Rails 1.2.6
Con esto ya podemos empezar a crear aplicaciones en Rails :D pero dejaremos esa parte para la próxima entrega.
Acá dejaré un script que se puede utilizar para instalar Ruby on Rails al toque, solo basta ejecutarlo como super usuario y él se encargará de hacer el resto ;)
#!/bin/bash
#===================================================
#
# ruby_instalacion.sh - Script en bash que permite instalar Ruby On Rails
# al vuelo
#
# Copyright (C) 2008: Wil Alvarez
#
#===================================================
# Instalar Ruby
aptitude update
aptitude install -y build-essential ruby ruby1.8-dev ri ri1.8 rdoc rdoc1.8 irb irb1.8 ruby1.8-examples libreadline-ruby libopenssl-ruby libdbi-ruby libdbd-mysql-ruby libdbd-pg-ruby libdbd-odbc-ruby libdbd-sqlite3-ruby libpgsql-ruby libmysql-ruby
# Instalar RubyGems
wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
tar -xvzf rubygems-1.2.0.tgz
cd rubygems-1.2.0
ruby setup.rb
GEM=/usr/bin/gem
if [ -n $GEM ]; then
rm -f /usr/bin/gem
fi
ln -s /usr/bin/gem1.8 /usr/bin/gem
cd ..
rm -rf rubygems-1.2.0/
# Instalar Rails
wget http://rubyforge.org/frs/download.php/26547/activesupport-1.4.4.gem
wget http://rubyforge.org/frs/download.php/28328/actionpack-1.13.6.gem
wget http://rubyforge.org/frs/download.php/28331/actionmailer-1.3.6.gem
wget http://rubyforge.org/frs/download.php/28325/activerecord-1.15.6.gem
wget http://rubyforge.org/frs/download.php/28334/actionwebservice-1.2.6.gem
wget http://rubyforge.org/frs/download.php/19878/rake-0.7.3.gem
wget http://rubyforge.org/frs/download.php/28337/rails-1.2.6.gem
gem install activesupport-1.4.4.gem
gem install actionpack-1.13.6.gem
gem install actionmailer-1.3.6.gem
gem install activerecord-1.15.6.gem
gem install actionwebservice-1.2.6.gem
gem install rake-0.7.3.gem
gem install rails-1.2.6.gem
rm activesupport-1.4.4.gem actionpack-1.13.6.gem actionmailer-1.3.6.gem activerecord-1.15.6.gem actionwebservice-1.2.6.gem rake-0.7.3.gem rails-1.2.6.gem