我在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 <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
我已尝试过similar questions中列出的建议,但rvm get head
和rvm 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
答案 0 :(得分:4)
RVM希望首先在PATH中找到它的bin目录。 RVM确实非常希望确保它优先于任何系统二进制文件或宝石。要使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 <ruby|gem>
作为第一个故障排除步骤。
答案 1 :(得分:0)
您的PATH
在开始时包含./bin:/usr/local/sbin:/usr/local/bin
,尽管我同意将/usr/local/sbin:/usr/local/bin
保留在开头是件好事我需要警告您保持{极为危险} {1}}首先,就像乞讨劫持你的计算机一样,这是分布式工作和使用公共存储库的最大安全问题之一。
否则@CodeGnome的答案形式非常准确,除了这个小细节。
答案 2 :(得分:0)
我发现它/etc/profile.d/rvm.sh
似乎导致了问题。链接到其内容:https://gist.github.com/armhold/6832283。
如果我chmod它删除读/执行位,我发现rvm再次开心。
我想知道是否应该手动安装此脚本的更新...