为什么rbenv仍然可以工作,即使我没有在我的PATH前面?

时间:2016-05-10 01:53:36

标签: ruby rbenv

我正在阅读一些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“冗余?

0 个答案:

没有答案