3

我想使用 rbenv 在每个项目的基础上设置 ruby​​ 版本。否则,我想将我的默认系统 ruby​​ 设置用于其他所有内容。

我遇到的问题是即使rbenv version返回systemgem命令仍然使用 rbenv shim ( .rbenv/shims/gem)。所以当我做gem environment我的安装目录是'/Library/Ruby/Gems/1.8'。我宁愿它仍然存在~/.gem/。我可以看到它仍然是当我运行时/usr/bin/gem enviroment。我不知道 rbenv shim gem 是从哪里得到它的设置的。

我已经尝试在我的 shell 中修改我的 GEM_HOME 并更改它,~/.gemrc但这没有任何效果。我一直在寻找没有运气。希望这里有人可以提供帮助。只是一些指向 rbenv gem shim 从中提取其值的指针会很有帮助。

谢谢

4

1 回答 1

5

由于 rbenv 垫片在您的 PATH 中非常高,它们的目的是拦截任何对 、 和类似的调用rubygem即使当前选择的 Ruby 版本是“系统”。你不应该为此担心。

现在,系统 Ruby 的默认安装路径将始终为/Library/Ruby/Gems/1.8. 这是我的RBENV_VERSION=system gem env

  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/mislav/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

但是,如果您使用sudo(而且您不应该使用),gem install则不会对该目录具有写入权限,并且会将 gem 安装在下一个可写路径中,即~/.gem/ruby/1.8. 这似乎是你想要的行为。

于 2013-04-05T20:48:54.057 回答