无法将带有RVM的Ruby与sud一起使用

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

Alexey Zakharov asked 2020-01-23T06:32:02Z
4个解决方案
113 votes

使用rvmsudo命令而不是sudo

calas answered 2020-01-23T06:32:24Z
6 votes

使@calas的答案更进一步,将此添加到您的sudo中:

alias sudo=rvmsudo

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

Craig Walker answered 2020-01-23T06:32:48Z
1 votes

Sudo正在重置您的PATH。 rvm通过修改PATH环境变量来工作,以使您使用的红宝石是特定的红宝石,可能在〜/ .rvm / rubies目录中。 当您使用sudo来使用ruby ruby时,sudo没有使用该修改过的PATH,因此它不会找到您的rvm ruby。 解决方法请参见此问题:sudo更改PATH-为什么?

Brandon Yarbrough answered 2020-01-23T06:33:09Z
0 votes

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

$ chown <your_username>:<your_group> /opt -R
$ passenger-install-nginx-module
Siwei Shen 申思维 answered 2020-01-23T06:33:29Z
translate from https://stackoverflow.com:/questions/3644897/cannot-use-rvm-installed-ruby-with-sudo