53

我已成功将 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 配置错误?也许我应该使用系统范围的安装

4

4 回答 4

115

使用rvmsudo命令代替sudo

于 2010-09-12T16:57:55.500 回答
6

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

alias sudo=rvmsudo

这避免了必须记住为每个命令更改sudo为的要求rvmsudo(对于复制/粘贴命令尤其烦人)。

于 2012-09-06T14:53:19.963 回答
1

Sudo 正在重置您的 PATH。rvm 通过修改您的 PATH 环境变量来工作,以便您使用的 ruby​​ 是一个特定的,可能在您的 ~/.rvm/rubies 目录中。当您使用 sudo 对 ruby​​ 进行 ruby​​ 时,sudo 没有使用修改后的 PATH,因此它不会找到您的 rvm ruby​​。有关解决方法,请参阅此问题:sudo 更改 PATH - 为什么?

于 2010-09-05T03:34:42.320 回答
0

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

$ chown <your_username>:<your_group> /opt -R
$ passenger-install-nginx-module
于 2012-12-05T09:17:59.090 回答