rbenv 在使用系统时破坏了我的 gem 安装目录

mee*_*ech 3 ruby macos rbenv

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

我遇到的问题是即使rbenv version返回systemgem命令仍然使用 rbenv 垫片(.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 从何处提取其值的指针会有所帮助。

谢谢

mis*_*lav 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
Run Code Online (Sandbox Code Playgroud)

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