rvm系统范围安装:警告! PATH未正确设置

我在Ubuntu 12.10上的/usr/local/rvm/bin安装了多用户版本的RVM。 当我将Ruby从1.9.3升级到2.0.0时,这似乎导致每当我执行rvm version或类似命令时弹出以下错误消息:

 $ rvm version Warning! PATH is not properly set up, '/usr/local/rvm/gems/ruby-2.0.0-p247/bin' is not at first place, usually this is caused by shell initialization files - check them for 'PATH=...' entries, it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles', to fix temporarily in this shell session run: 'rvm use ruby-2.0.0-p247'. rvm 1.22.16 (stable) by Wayne E. Seguin , Michal Papis  [https://rvm.io/] 

我已经尝试过类似问题中列出的建议,但是rvm get headrvm get head --auto-dotfiles没有帮助。

我在.bashrc最后有以下内容:

 PATH=$PATH:/usr/local/rvm/bin # Add RVM to PATH for scripting 

我的道路是:

 $ echo $PATH ./bin:/usr/local/sbin:/usr/local/bin:/usr/local/rvm/gems/ruby-2.0.0-p247/bin:/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p247/bin:/usr/local/rvm/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games $ which rvm /usr/local/rvm/bin/rvm $ which ruby /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby 

RVM和PATH

RVM希望首先在PATH中找到它的bin目录。 RVM确实非常希望确保它优先于任何系统二进制文件或gem。 要使RVM的系统安装满意,您的PATH语句应类似于:

 PATH=/usr/local/rvm/bin:$PATH 

而你现在倒了。 这通常是The Right Thing™。

忽略错误

如果您真的知道自己在做什么,可以添加:

 rvm_silence_path_mismatch_check_flag=1 

/ etc / rvmrc〜/ .rvmrc文件。 这将阻止RVM抱怨不是PATH中的第一个,但很可能会给大多数人带来问题。

可能存在必要的合法边缘情况,例如在〜/ bin中使用与Ruby相关的包装器脚本,您希望优先使用。 但是,调试Ruby和RVM会更加困难,因此如果启用此选项,您应该记得检查which -a 作为第一个故障排除步骤。

你的PATH在开始时包括./bin:/usr/local/sbin:/usr/local/bin ,尽管我同意保留/usr/local/sbin:/usr/local/bin是好的开始我需要警告你,保留./bin是非常危险的,就像乞求劫持你的计算机一样,这是分布式工作和使用公共存储库的最大安全问题之一。

除非这个小细节,否则@CodeGnome的答案forms非常准确。

我发现它似乎是导致问题的/etc/profile.d/rvm.sh 。 链接到其内容: https : //gist.github.com/armhold/6832283 。

如果我chmod它删除读/执行位我发现rvm再次开心。

我想知道是否应该手动安装此脚本的更新…