Ruby
Como siempre, aclaro que estoy son algunos apuntes que voy cogiendo mientras voy leyendo documentación y que puede haber muchas cosas que falten o malentendidos, así que aconsejo si alguien lo está leyendo que busque más información.
Contenido
Manejadores de versiones
Se puede instalar Ruby desde paquetería, o se puede incluso compilar una versión especifica, pero por lo que he visto por ahí la gente prefiere utilizar scripts que te gestionan el tener diferentes versiones de Ruby en tu sistema.
Entre ellos destacan dos
- RVM
- rbenv
Este segundo parece tener más fama por ser más sencillo para gestionar las versiones, así que de momento me centro en trabajar con él
Instalación de rbenv
He visto que en ubuntu 14.04 se ofrece de paquetería, pero también se puede bajar con Git, y he decidido hacerlo de esta forma. Existe este tutoria bastante sencillo y conciso, sobre osx pero que aplica muy bien aqui
cd git clone https://github.com/sstephenson/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bashrc echo 'eval "$(rbenv init -)"' >> .bashrc
Por si solo rbenv no descarga versiones, pero han añadido un plugin muy bueno que hace que con un comando te descargue la versión que necesites, así que seguimos añadiendo lo siguiente:
cd git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Y para para finalizar cargamos el .bashrc que acabamos de modificar
source ~/.bashrc
con esto ya podemos ejecutar rbenv.
Instalación de versiones
Para ver la lista de versiones que tenemos disponibles:
rbenv install -l
Y para instalar una en concreto,
rbenv install 1.9.3-p0
Cambiando entre versiones
Por defecto rbenv siempre nos dejará la versión del sistema si es que la tenemos instalada. Hay dos formas de cambiar de version:
- local
- global
La forma local se hace con el siguiente comando:
rbenv local 1.9.3-p0
Esto nos creará un fichero en el directorio actual .ruby-version, que contiene la version que hemos especificado, y cualquier ejecución de ruby dentro de este path, incluso por directorios contenidos en él, ejecutará esa version.
La otra forma es la global, que cambiara a esa versión de ruby por defecto para el usuario.
Las gemas, las versiones y Rehash
Muy importante tener en cuenta que cada vez que instalamos una gema lo hacemos para la version que estamos ejecutando en ese momento, y no se comparten gemas entre diferentes versiones, para no tener problemas de compatibilidades entre diferentes versiones.
Hay gemas que añaden comandos a la shell, y con rbenv no van a estar dispoinibles de primeras, pero si lo estarán si después de instalar la gema, como bundler, ejecutamos
rbenv rehash