Ответ 1
Используйте команду rvmsudo
вместо 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? Возможно, я должен использовать системную установку?
Используйте команду rvmsudo
вместо sudo
Взяв @calas, ответьте еще на один шаг, добавьте это в свой ~/.bashrc
:
alias sudo=rvmsudo
Это позволяет избежать необходимости запоминать изменение sudo
до rvmsudo
для каждой команды (особенно раздражающей для команд копирования/вставки).
Судо сбрасывает ваш PATH. rvm работает, изменяя переменную окружения PATH так, чтобы рубин, который вы используете, является определенным, вероятно, в вашем каталоге ~/.rvm/rubies. Когда вы рубите ruby с помощью sudo, sudo не использует эту модифицированную PATH, и поэтому он не найдет ваш rvm ruby. См. Этот вопрос для обходных решений: sudo changes PATH - почему?
@calas ответ - ответ. но если вы не можете достичь своей цели, используя rvmsudo
, например. установите nginx с помощью команды passenger-install-nginx-module
, просто измените владельца соответствующей папки/пути. например
$ chown <your_username>:<your_group> /opt -R
$ passenger-install-nginx-module