2010-09-05 40 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