Impossible d’utiliser Ruby installé avec RVM avec sudo

J’ai configuré avec succès RVM pour utiliser Ruby 1.9.2 et tout va bien. Cependant, lorsque j’essaie d’exécuter Ruby en utilisant sudo , il est impossible de 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 l’ installation à l’échelle du système ?

Utilisez la commande rvmsudo au lieu de sudo

Prendre @calas une réponse plus loin, ajoutez ceci à votre ~/.bashrc :

 alias sudo=rvmsudo 

Cela évite d’avoir à se rappeler de changer sudo en rvmsudo pour chaque commande (en particulier pour les commandes copier / coller).

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. Lorsque vous ruby ​​ruby ​​avec sudo, sudo n’utilise pas ce PATH modifié, et ne trouvera donc pas votre ruby ​​rvm. Voir cette question pour des solutions de contournement: sudo change PATH – pourquoi?

La réponse de @ calas est la réponse. mais si vous ne pouvez pas atteindre votre objective en utilisant rvmsudo , par exemple en installant nginx en utilisant la commande passenger-install-nginx-module , veuillez simplement changer le propriétaire du dossier / chemin associé. par exemple

 $ chown : /opt -R $ passenger-install-nginx-module