2010-09-05 112 views
51

我已成功配置RVM以使用Ruby 1.9.2,並且一切正常。然而,當我試圖使用sudo來運行Ruby它說,它無法找到RVM或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配置錯誤?也許我應該使用system wide install

回答

110

使用sudo

+0

+1 - Thanks calas!這對我來說非常合適。我有許多寶石需要我在運行時使用sudo(比如RubyCAS),這解決了我的問題。再次感謝! – 2010-10-25 16:54:52

+0

感謝您需要這個安裝乘客 – MatthewFord 2010-10-30 01:39:33

+1

我需要更新rvm來安裝命令。 'rvm update --head'爲我解決了這個問題,這只是一次全新的安裝。 – tgandrews 2010-12-05 03:35:33

1

Sudo重置您的PATH。 rvm通過修改PATH環境變量來工作,以便您使用的ruby是特定的,可能在〜/ .rvm/rubies目錄中。當你用sudo ruby​​ ruby​​時,sudo沒有使用修改過的PATH,所以它不會找到你的rvm ruby​​。請參閱解決方法這個問題:sudo changes PATH - why?

6

以@calas的回答一步的rvmsudo命令來代替,將它添加到您的~/.bashrc

alias sudo=rvmsudo 

這樣可以避免的要求請記住將每個命令更改爲sudorvmsudo(特別討厭複製/粘貼命令)。

0

@ calas的回答就是答案。但如果您無法通過使用rvmsudo來實現您的目標,例如使用命令passenger-install-nginx-module安裝nginx,請更改相關文件夾/路徑的所有者。例如

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