Cómo instalar RVM en Ubuntu 12.04 Server

Ruby on Rails

Este fin de semana anduve trasteando en arenas que normalmente no trato mucho, más concretamente instalando ruby en el servidor para probar un par de cosas. Durante el proceso tuve algunos problemas, y por eso este post: para recordarlo yo mismo más adelante y por si alguien tiene el mismo problema.

No es la primera vez que instalo Ruby ni RVM, ya en 2010 dejé por aquí un post breve explicando cómo instalar Ruby on Rails en Ubuntu. Esta vez la cosa es aún más sencilla y en la página de RVM (Ruby Version Manager) dan una guía que ya sirve para instalarlo todo de forma sencilla.

El problema, en realidad, precede a la instalación de RVM en sí, y es posible que más de una persona se encuentre con el mismo asunto, de ahí que haya decidido bloguearlo. El servidor en el que estoy instalando ruby usa Ubuntu Server, y en el PC de casa tengo Ubuntu Home, ambos corriendo Ubuntu 12.04 (server edition y home edition, respectivamente). En casa el script funcionó perfectamente pero en el servidor rvm no era reconocido como comando tras la instalación. El asunto es que en mi máquina local se instaló todo a la primera, y en el servidor aparecía un mensaje de error muy habitual cuando algo ha ido mal:

$ rvm requirements
-sh: rvm: command not found

Tras Googlear mucho y descartar todo tipo de soluciones que no estaban relacionadas con mi sistema, parece que el problema está en la shell que el sistema asigna al usuario cuando se crea su cuenta. Cuando creamos un usuario en Ubuntu a través del terminal, el sistema le asigna la shell «sh» (POSIX), pero RVM necesita que el usuario use bash o zsh, que son las shells que soporta.

El problema se soluciona asignando cualquiera de esas dos shells al usuario, por ejemplo ejecutando la siguiente línea:

usermod -s /bin/bash user

Donde user es el nombre del usuario al que queremos cambiar la shell.

Y una vez hecho eso, problema solucionado.

[Gracias a Michael Papis, que mantiene actualmente este programa y que me ha ayudado directamente con el debuggin.]

Jose Alcántara
Resolviendo problemas mediante ciencia, software y tecnología. Hice un doctorado especializado en desarrollo de hardware para análisis químico. Especialista en desarrollo agile de software. Más sobre Jose Alcántara.
Este blog usa cookies para su funcionamiento.    Más información
Privacidad