Подтвердить что ты не робот

Невозможно использовать RVM-установленный Ruby с sudo

Я успешно настроил RVM на использование Ruby 1.9.2, и все в порядке. Однако, когда я пытаюсь запустить Ruby с помощью sudo, он говорит, что не может найти RVM или 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

Является ли это правильное поведение или неверно настроен мой RVM? Возможно, я должен использовать системную установку?

4b9b3361

Ответ 1

Используйте команду rvmsudo вместо sudo

Ответ 2

Взяв @calas, ответьте еще на один шаг, добавьте это в свой ~/.bashrc:

alias sudo=rvmsudo

Это позволяет избежать необходимости запоминать изменение sudo до rvmsudo для каждой команды (особенно раздражающей для команд копирования/вставки).

Ответ 3

Судо сбрасывает ваш PATH. rvm работает, изменяя переменную окружения PATH так, чтобы рубин, который вы используете, является определенным, вероятно, в вашем каталоге ~/.rvm/rubies. Когда вы рубите ruby ​​с помощью sudo, sudo не использует эту модифицированную PATH, и поэтому он не найдет ваш rvm ruby. См. Этот вопрос для обходных решений: sudo changes PATH - почему?

Ответ 4

@calas ответ - ответ. но если вы не можете достичь своей цели, используя rvmsudo, например. установите nginx с помощью команды passenger-install-nginx-module, просто измените владельца соответствующей папки/пути. например

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