51 votes

Impossible d'utiliser Ruby installé par RVM avec sudo

J'ai réussi à configurer RVM pour utiliser Ruby 1.9.2 et tout va bien. Cependant, lorsque j'essaie d'exécuter Ruby en utilisant la commande sudo il dit 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

Est-ce un comportement correct ou mon RVM est-il mal configuré ? Peut-être devrais-je utiliser le installation dans tout le système ?

113voto

calas Points 1421

Utilisez rvmsudo au lieu de sudo

6voto

Craig Walker Points 13478

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

alias sudo=rvmsudo

Cela permet d'éviter de devoir se rappeler de modifier sudo a rvmsudo pour chaque commande (particulièrement ennuyeux pour les commandes copiées/collées).

1voto

Brandon Yarbrough Points 8558

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

0voto

Siwei Shen Points 5814

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 en utilisant la commande passenger-install-nginx-module veuillez simplement changer le propriétaire du dossier/chemin en question.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X