Невозможно использовать установленный RVM Ruby с sudo - PullRequest
51 голосов
/ 05 сентября 2010

Я успешно настроил 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 неправильно настроен?Возможно, мне следует использовать общесистемную установку ?

Ответы [ 4 ]

113 голосов
/ 12 сентября 2010

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

6 голосов
/ 06 сентября 2012

Продолжая ответ @calas ', добавьте его к своему ~/.bashrc:

alias sudo=rvmsudo

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

1 голос
/ 05 сентября 2010

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

0 голосов
/ 05 декабря 2012

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

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