web-dev-qa-db-fra.com

Impossible d'utiliser Ruby installé avec RVM avec sudo

J'ai configuré RVM avec succès pour utiliser Ruby 1.9.2 et tout va bien. Cependant, lorsque j'essaie d'exécuter Ruby avec Sudo, il est indiqué qu'il ne peut pas trouver RVM ou Ruby:

$ 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

Ce comportement est-il correct ou mon RVM est-il mal configuré? Peut-être devrais-je utiliser le system wide install ?

51
Alexey Zakharov

Utilisez la commande rvmsudo au lieu de Sudo

111
calas

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

alias Sudo=rvmsudo

Cela évite d'avoir à se souvenir de changer Sudo en rvmsudo pour chaque commande (particulièrement gênant pour les commandes copier/coller).

6
Craig Walker

Sudo réinitialise votre PATH. rvm fonctionne en modifiant votre variable d’environnement PATH afin que le Ruby que vous utilisez soit particulier, probablement dans votre répertoire ~/.rvm/rubies. Lorsque vous utilisez Ruby Ruby avec Sudo, Sudo n’utilise pas ce PATH modifié et ne trouvera donc pas votre lecteur Ruby. Voir cette question comme solution de contournement: Sudo change PATH - pourquoi?

1
Brandon Yarbrough

La réponse de @ calas est la réponse. mais si vous ne pouvez pas atteindre votre objectif en utilisant rvmsudo, par exemple. Installez nginx à l’aide de la commande passenger-install-nginx-module, changez simplement le propriétaire du dossier/chemin associé. par exemple. 

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