web-dev-qa-db-ja.com

RVMがインストールされたRubyをsudoとともに使用することはできません

Ruby 1.9.2を使用するようにRVMを正常に構成しましたが、すべて問題ありません。ただし、Ruby using 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の設定が間違っていますか?たぶん システム全体のインストール を使用する必要がありますか?

51
Alexey Zakharov

rvmsudoの代わりにSudoコマンドを使用します

113
calas

@calasの回答をさらに一歩進め、これを~/.bashrc

alias Sudo=rvmsudo

これにより、すべてのコマンドでSudorvmsudoに変更することを忘れないようにする必要がなくなります(特に、コピー/貼り付けされたコマンドでは煩わしい)。

6
Craig Walker

SudoがPATHをリセットしています。 rvmは、使用しているRubyがおそらく〜/ .rvm/rubiesディレクトリにある特定のものになるように、PATH環境変数を変更することで機能します。Ruby ruby Sudoの場合、Sudoは変更されたPATHを使用していないため、rvm Rubyが見つかりません。回避策については、この質問を参照してください。 SudoがPATHを変更する-理由は?

1

@calasの答えは答えです。しかし、rvmsudoを使用しても目標を達成できない場合は、たとえばコマンドpassenger-install-nginx-moduleを使用してnginxをインストールします。関連するフォルダ/パスの所有者を変更してください。例えば.

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