Llegamos al lenguaje con el que más he construido: Ruby. En este artículo vas a aprender exactamente cómo instalarlo en Ubuntu o WSL con rbenv, el gestor de versiones que inspiró a toda la familia (nodenv y pyenv, que ya vimos, son sus descendientes directos).
Ruby fue mi puerta de entrada a la programación: lo usaba para automatizar procesos en SketchUp sin saber que eso era “programar”. Hoy sigue siendo el corazón de mis proyectos con Rails, y si algo aprendí en todos estos años es que un Ruby mal instalado te cobra la factura en el peor momento: cuando bundle install falla en plena entrega.
El problema es el de siempre: instalar Ruby con apt te da una versión vieja y global, y Rails es especialmente sensible a las versiones. Dos proyectos con Gemfiles distintos y un solo Ruby es una receta para el desastre.
Vamos a ver:
- Instalar las dependencias de compilación.
- Instalar rbenv y ruby-build.
- Configurar tu shell correctamente.
- Instalar versiones de Ruby, elegir la global y fijarla por proyecto.
- Dejar Bundler listo para trabajar.
Al final tendrás un entorno Ruby a prueba de Gemfiles, replicable en cualquier máquina.
Esta guía asume la base de la serie: Setup Ubuntu y WSL para desarrollo profesional y Git configurado.
Tabla de contenidos
Tabla de contenidos
Paso 1: Instala las dependencias de compilación
Como pyenv, rbenv compila Ruby desde la fuente. Si seguiste el setup profesional ya tienes la mayoría; este bloque garantiza las que Ruby necesita:
sudo apt update && sudo apt install -y \
build-essential curl git libssl-dev zlib1g-dev libreadline-dev \
libyaml-dev libxml2-dev libxslt1-dev libffi-dev libgdbm-dev \
libncurses-dev libdb-dev uuid-dev
Paso 2: Instala rbenv y ruby-build
Clona rbenv en tu carpeta personal:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Y su plugin ruby-build, el que aporta el comando rbenv install:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Sin ruby-build, rbenv sabe cambiar de versión pero no sabe instalarlas. Van juntos siempre.
Paso 3: Configura tu shell
El reparto de siempre en la serie. Si usas zsh (el de Oh My Zsh): PATH en ~/.zprofile, inicialización en ~/.zshrc.
echo '' >> ~/.zprofile
echo '# PATH de rbenv' >> ~/.zprofile
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zprofile
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.zprofile
echo '' >> ~/.zshrc
echo '# Inicialización de rbenv' >> ~/.zshrc
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
Si usas bash: el PATH va en ~/.bash_profile y la inicialización en ~/.bashrc, cambiando zsh por bash.
En Ubuntu, si tu ~/.bash_profile no existía, créalo con cuidado: cuando existe, bash deja de leer ~/.profile en sesiones de login. Si ya tenías configuración ahí, agrégale al inicio la línea source ~/.profile.
Recarga y verifica:
exec "$SHELL"
rbenv -v
Paso 4: Instala Ruby y define la versión global
Consulta las versiones estables recientes:
rbenv install -l
Instala la que necesites (usa la más reciente de la lista) y déjala como predeterminada:
rbenv install 3.4.4
rbenv global 3.4.4
La instalación tarda varios minutos: está compilando Ruby desde la fuente. Si falla, casi siempre es una dependencia del Paso 1 que faltó.
Verifica:
ruby -v
rbenv versions
rbenv which ruby
Paso 5: Fija la versión por proyecto
Dentro de la carpeta de un proyecto:
cd mi-proyecto
rbenv local 3.4.4
Esto crea un archivo .ruby-version, que además Rails y Bundler saben leer: quien clone el repo sabrá exactamente qué Ruby necesita, y rbenv lo activará automáticamente al entrar a la carpeta.
Paso 6: Deja Bundler listo
Bundler es el gestor de dependencias de Ruby y tu compañero diario en cualquier proyecto:
gem install bundler
rbenv rehash
bundle -v
Aprovecha para actualizar RubyGems:
gem update --system
rbenv rehash regenera los shims: los atajos que hacen que ruby, gem o bundle apunten a la versión correcta. Si instalas una gema con ejecutable (como rails) y el comando no aparece, ese es el remedio.
Solución de problemas comunes
rbenv: command not found
La configuración del shell no quedó aplicada. Revisa los archivos del Paso 3 y reinicia la terminal.
ruby-build: definition not found
Tu ruby-build no conoce esa versión todavía. Actualízalo:
cd ~/.rbenv/plugins/ruby-build && git pull
Falla la compilación
Dependencia faltante en el 99% de los casos: repite el bloque del Paso 1 y reintenta.
Instalé una gema y el comando no aparece
rbenv rehash
Mantenimiento
Ambos se actualizan con git:
cd ~/.rbenv && git pull
cd ~/.rbenv/plugins/ruby-build && git pull
Y para eliminar una versión que ya no uses:
rbenv uninstall 3.4.4
Conclusión
Ruby compilado en tu usuario, .ruby-version por proyecto y Bundler listo: la base exacta sobre la que después se monta Rails sin fricción. Es la misma filosofía de toda la etapa de lenguajes, aplicada al gestor que la inventó.
Si esto te fue útil, el artículo relacionado es el paso lógico: Setup Ubuntu y WSL para desarrollo profesional, la base de dependencias que hace que rbenv compile sin sorpresas.
El jueves publico esta misma configuración para macOS. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.