wake-up-neo.com

RVM-installierter Ruby kann nicht mit Sudo verwendet werden

Ich habe RVM erfolgreich für die Verwendung von Ruby 1.9.2 konfiguriert und alles ist in Ordnung. Wenn ich jedoch versuche, Ruby mit Sudo auszuführen, wird RVM oder Ruby nicht gefunden:

$ 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 korrekt oder ist meine RVM falsch konfiguriert? Vielleicht sollte ich die systemweite Installation verwenden?

51
Alexey Zakharov

Verwenden Sie den Befehl rvmsudo anstelle von Sudo.

111
calas

Nehmen Sie die Antwort von @calas noch einen Schritt weiter und fügen Sie dies Ihrem ~/.bashrc hinzu:

alias Sudo=rvmsudo

Dies vermeidet die Notwendigkeit, daran denken zu müssen, Sudo in rvmsudo für jeden Befehl zu ändern (besonders ärgerlich für das Kopieren/Einfügen von Befehlen).

6
Craig Walker

Sudo setzt Ihren PFAD zurück. rvm funktioniert, indem Sie die Umgebungsvariable PATH so ändern, dass der von Ihnen verwendete Ruby möglicherweise in Ihrem Verzeichnis ~/.rvm/rubies liegt. Wenn Sie Ruby Ruby mit Sudo verwenden, verwendet Sudo diesen modifizierten PATH nicht und kann Ihren Ruby Ruby also nicht finden. Sehen Sie sich diese Frage an, um Abhilfe zu schaffen: Sudo ändert PATH - warum?

1

Die Antwort von @ calas ist die Antwort. Wenn Sie Ihr Ziel jedoch nicht mit rvmsudo erreichen können, 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