我正在阅读一些rbenv文档,试图围绕它的工作原理,并阅读以下内容:
rbenv的工作原理是在你的前面插入一个垫片目录 路径:
〜/ .rbenv / shims:/ usr / local / bin:/ usr / bin:/ bin通过一个名为的进程 rehashing,rbenv在该目录中维护垫片以匹配每个Ruby 跨越每个已安装版本的Ruby-irb,gem,rake,rails, 红宝石,等等。
我现在能够成功使用rbenv在不同版本的ruby之间切换:
~/.rbenv/versions ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin15.0]
~/.rbenv/versions rbenv versions
system
* 2.1.5 (set by /Users/max/.rbenv/version)
2.2.3
~/.rbenv/versions rbenv global 2.2.3
~/.rbenv/versions rbenv rehash
~/.rbenv/versions ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
~/.rbenv/versions rbenv global 2.1.5
~/.rbenv/versions rbenv rehash
~/.rbenv/versions ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin15.0]
但是当我查看我的〜/ .zshrc文件时,我发现了以下内容:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/.rbenv/shims:$HOME/.rbenv/bin"
似乎rbenv没有前置任何东西,它实际上附加了根据文档使它看起来它不会工作,我的系统将查看/ usr / bin并找到我的系统ruby可执行文件并运行它而不是我在/Users/max/.rbenv/versions里面的那些。但这显然不是正在发生的事情,所以我想知道这里发生了什么?我错过了什么吗?
编辑:我只是在我的.zshrc文件中挖掘更多内容,我发现这是最底层的,可能是因为我试图弄清楚如何让rbenv第一次工作:# Fix to rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
这是文件所说的“前置”线吗?所以这种情况可能就是在导出时提到.rbenv PATH =“/ usr / local / bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:$ HOME /。 rbenv / shims:$ HOME / .rbenv / bin“冗余?