2010-09-05 13 views
51

He configurado con éxito RVM para usar Ruby 1.9.2 y todo está bien. Sin embargo, cuando estoy tratando de correr Rubí usando sudo que dice que no puede encontrar RVM o Ruby:No puedo usar Ruby instalado RVM con sudo

$ ruby -v 
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] 

$ sudo ruby -v 
[sudo] password for administrator: 
sudo: ruby: command not found 

es que el comportamiento correcto o está mal configurado mi RVM? Tal vez debería usar el system wide install?

Respuesta

110

Uso rvmsudo comandos en lugar de respuesta sudo

+0

+1 - Thanks calas! Esto funcionó asombrosamente para mí. Tengo muchas gemas que requieren que use sudo cuando las ejecuto (como RubyCAS) y esto resolvió mi problema con elocuencia. ¡Gracias de nuevo! –

+0

gracias necesitaba esto para instalar el pasajero – MatthewFord

+1

Necesitaba actualizar rvm para instalar el comando. 'rvm update -head' solucionó el problema, esto fue justo después de una nueva instalación. – tgandrews

1

Sudo está restableciendo su RUTA. rvm funciona modificando la variable de entorno PATH para que el ruby ​​que está utilizando sea uno particular, probablemente en su directorio ~/.rvm/rubies. Cuando ruby ​​ruby ​​con sudo, sudo no utiliza esa ruta de acceso modificada, por lo que no encontrará tu rvm ruby. Ver esta pregunta para soluciones: sudo changes PATH - why?

6

@calas toma un paso más allá, agregar esto a su ~/.bashrc:

alias sudo=rvmsudo 

Esto evita la necesidad de tener que recuerde cambiar sudo a rvmsudo para cada comando (particularmente molesto para los comandos de copiar/pegar).

0

@ la respuesta de calas es la respuesta. pero si no puede lograr su objetivo usando rvmsudo, p. instale el nginx usando el comando passenger-install-nginx-module, simplemente cambie el propietario de la carpeta/ruta relacionada. p.ej.

$ chown <your_username>:<your_group> /opt -R 
$ passenger-install-nginx-module 
Cuestiones relacionadas