Ruby en macOS, la versión de esta guía para Mac. Vas a aprender exactamente cómo instalar Ruby con rbenv y Homebrew: varias versiones conviviendo, la de cada proyecto fijada con .ruby-version y Bundler listo para trabajar.
Ruby con Rails es mi stack principal desde hace años, y este es exactamente el setup que repito en cada Mac nuevo que configuro. No es teoría: es la receta que uso.
macOS tiene una trampa conocida con Ruby: el sistema trae uno viejo (está ahí por compatibilidad, no para ti) y muchos tutoriales te hacen instalarle gemas con sudo. Ese camino termina siempre igual: errores de permisos, gemas nativas que no compilan y un entorno que nadie sabe reproducir.
El problema de fondo es usar un Ruby que no controlas. La solución es la misma de toda esta etapa de la serie: un gestor de versiones que vive en tu usuario.
Vamos a ver:
- Instalar rbenv y ruby-build con Homebrew.
- Configurar
~/.zprofiley~/.zshrccorrectamente. - Instalar versiones de Ruby, elegir la global y fijarla por proyecto.
- Dejar Bundler listo para trabajar.
Al final tendrás un entorno Ruby limpio, sin sudo y a prueba de Gemfiles.
Esta guía asume que ya tienes Homebrew instalado. Si no, empieza por Setup macOS para desarrollo profesional.
Tabla de contenidos
Tabla de contenidos
Paso 1: Instala rbenv y ruby-build
Actualiza las fórmulas e instala ambos de una vez:
brew update
brew install rbenv ruby-build
ruby-build es el plugin que aporta el comando rbenv install; con Homebrew llegan juntos y se actualizan juntos.
Paso 2: Configura tu shell
El reparto de siempre en la serie: PATH en ~/.zprofile, inicialización interactiva 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
Con Homebrew, rbenv ya está en tu PATH y estas líneas no son estrictamente necesarias: cubren el caso de instalarlo por git (como en la versión de Ubuntu) y no estorban. Así el mismo .zprofile te sirve en cualquier máquina.
echo '' >> ~/.zshrc
echo '# Inicialización de rbenv' >> ~/.zshrc
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
Recarga la configuración (o cierra y abre la terminal):
source ~/.zprofile
source ~/.zshrc
Verifica:
rbenv -v
Paso 3: 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: rbenv compila Ruby desde la fuente usando las herramientas que ya dejamos listas en el setup de la serie.
Verifica:
ruby -v
rbenv versions
rbenv which ruby
Fíjate en la ruta de rbenv which ruby: debe salir de ~/.rbenv, no de /usr/bin. Ese es tu Ruby, no el del sistema.
Paso 4: 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 trabaja con el mismo Ruby que tú, automáticamente.
Paso 5: Deja Bundler listo
El gestor de dependencias de Ruby, sin sudo porque todo vive en tu usuario:
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
Revisa que las líneas del Paso 2 quedaron en los archivos correctos y reinicia la terminal.
ruby-build: definition not found
Tu ruby-build no conoce esa versión todavía:
brew upgrade ruby-build
ruby -v sigue mostrando el Ruby del sistema
rbenv version
which ruby
Si la ruta no sale de ~/.rbenv/shims, falta la inicialización del Paso 2 en tu ~/.zshrc.
Líneas duplicadas en ~/.zprofile o ~/.zshrc
Pasa si ejecutas los echo >> más de una vez. Abre el archivo y deja una sola copia de cada bloque.
Mantenimiento
Actualizar rbenv y ruby-build (instalados con Homebrew):
brew upgrade rbenv ruby-build
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, Bundler sin sudo y el Ruby del sistema intacto donde Apple lo dejó: ese es el entorno sobre el que Rails se instala sin pelear.
Si esto te fue útil, el artículo relacionado es el paso lógico: Cómo instalar y configurar Ruby en Ubuntu con rbenv, la versión de esta guía para Ubuntu y WSL.
La próxima semana sigo con la serie: Java con SDKMAN, el gestor de todo su ecosistema. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.