不能使用RVM安装的Ruby与sudo

时间:2010-09-05 03:26:59

标签: ruby rvm sudo

我已成功配置RVM以使用Ruby 1.9.2,一切都很好。但是,当我尝试使用sudo运行Ruby时,它说无法找到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

4 个答案:

答案 0 :(得分:113)

使用rvmsudo命令代替sudo

答案 1 :(得分:6)

将@calas'进一步回答,将其添加到~/.bashrc

alias sudo=rvmsudo

这避免了必须记住为每个命令更改sudorvmsudo的要求(特别是对复制/粘贴命令很烦)。

答案 2 :(得分:1)

Sudo正在重置你的PATH。 rvm通过修改你的PATH环境变量来工作,这样你正在使用的ruby是一个特定的,可能在〜/ .rvm / rubies目录中。当你用sudo ruby​​ ruby​​时,sudo没有使用那个修改过的PATH,所以它不会找到你的rvm ruby​​。有关解决方法,请参阅此问题:sudo changes PATH - why?

答案 3 :(得分:0)

@ calas的答案就是答案。但如果使用rvmsudo无法实现目标,例如使用命令passenger-install-nginx-module安装nginx,请更改相关文件夹/路径的所有者。例如

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