2010-09-05 6 views
51

J'ai configuré avec succès RVM pour utiliser Ruby 1.9.2 et tout va bien. Cependant, quand je suis en train d'exécuter Ruby en utilisant sudo il dit qu'il ne peut pas trouver RVM ou Ruby:Impossible d'utiliser Ruby RVM avec 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 

Est-ce un comportement correct ou est mon RVM misconfigured? Peut-être que je devrais utiliser le system wide install?

Répondre

110

Utilisez la commande rvmsudo au lieu de sudo

+0

+1 - Merci calas! Cela a fonctionné awesomely pour moi. J'ai beaucoup de gemmes qui me demandent d'utiliser sudo lors de leur exécution (comme RubyCAS) et cela a résolu mon problème avec éloquence. Merci encore! –

+0

merci nécessaire pour installer le passager – MatthewFord

+1

J'avais besoin de mettre à jour rvm pour installer la commande. 'rvm update --head' a résolu le problème pour moi, c'était juste après une nouvelle installation. – tgandrews

1

Sudo réinitialise votre PATH. rvm fonctionne en modifiant votre variable d'environnement PATH pour que le ruby ​​que vous utilisez soit particulier, probablement dans votre répertoire ~/.rvm/rubies. Quand vous ruby ​​ruby ​​avec sudo, sudo n'utilise pas ce PATH modifié, et donc il ne trouvera pas votre rvm ruby. Voir cette question pour des solutions de contournement: sudo changes PATH - why?

6

Prendre @calas de la réponse un peu plus loin, ajoutez à votre ~/.bashrc:

alias sudo=rvmsudo 

On évite ainsi l'exigence d'avoir à N'oubliez pas de changer sudo en rvmsudo pour chaque commande (particulièrement ennuyeux pour les commandes copier/coller).

0

La réponse de calas est la réponse. mais si vous ne pouvez pas atteindre votre objectif en utilisant rvmsudo, par ex. installez le nginx en utilisant la commande passenger-install-nginx-module, s'il vous plaît juste changer le propriétaire du dossier/chemin associé. par exemple.

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