不能与sudo一起使用RVM安装的Ruby

我已经成功地configurationRVM使用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 

这是正确的行为还是我的RVMconfiguration错误? 也许我应该使用系统安装 ?

使用rvmsudo命令而不是sudo

把@calas'回答更进一步,把这个添加到你的~/.bashrc

 alias sudo=rvmsudo 

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

Sudo正在重置您的PATH。 rvm通过修改你的PATH环境variables来工作,以便你使用的ruby是特定的,可能在〜/ .rvm / rubies目录下。 当你用sudo ruby​​ ruby​​时,sudo没有使用修改后的PATH,所以它不会find你的rvm ruby​​。 请参阅此问题的解决方法: sudo更改PATH – 为什么?

@卡拉斯的答案是答案。 但是如果你不能使用rvmsudo来实现你的目标,比如使用命令passenger-install-nginx-module ,请改变相关文件夹/path的所有者。 例如

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