2010-09-05 5 views
51

Ich habe RVM erfolgreich konfiguriert, um Ruby 1.9.2 zu verwenden, und alles ist gut. Aber wenn ich versuche, Rubin mit sudo laufen sie sagt, es nicht RVM oder Ruby finden:Kann RVM-installiertes Ruby mit sudo nicht verwenden

$ 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 

Ist das richtige Verhalten oder ist mein RVM falsch konfiguriert? Vielleicht sollte ich die system wide install verwenden?

Antwort

110

Verwenden rvmsudo Befehl statt sudo

+0

+1 - Danke calas! Das hat super für mich funktioniert. Ich habe viele Edelsteine, die erfordern, dass ich sudo benutze (wie RubyCAS), und dies löste mein Problem eloquent. Danke noch einmal! –

+0

danke benötigt dies zu installieren Passagier – MatthewFord

+1

Ich musste rvm aktualisieren, um den Befehl zu installieren. 'rvm update --head' behob das Problem für mich, das war kurz nach einer Neuinstallation. – tgandrews

1

Sudo setzt Ihren PATH zurück. rvm funktioniert, indem Sie Ihre PATH-Umgebungsvariable so ändern, dass der Ruby, den Sie verwenden, ein bestimmter ist, wahrscheinlich in Ihrem ~/.rvm/rubies-Verzeichnis. Wenn du Ruby mit Sudo rubinierst, benutzt sudo diesen modifizierten PATH nicht und findet deinen rvm Ruby nicht. Sehen Sie diese Frage für Abhilfen: sudo changes PATH - why?

6

Unter @calas' Antwort einen Schritt weiter, fügen Sie diese zu Ihrer ~/.bashrc:

alias sudo=rvmsudo 

Dies vermeidet das Erfordernis, zu Denken Sie daran, für jeden Befehl sudo zu rvmsudo zu ändern (besonders ärgerlich für Kopieren/Einfügen Befehle).

0

@ calas Antwort ist die Antwort. Aber wenn Sie Ihr Ziel nicht erreichen können, indem Sie rvmsudo verwenden, z. Installieren Sie den nginx mit dem Befehl passenger-install-nginx-module, ändern Sie einfach den Besitzer des zugehörigen Ordners/Pfads. z.B.

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