2017-10-16 63 views
0

我正在使用我的工作笔记本电脑贡献一个非工作的开源项目。在工作中,我们使用rbenv来管理Ruby版本,但是这个开源项目似乎期望gem依赖项位于系统Ruby安装文件夹中。所以当我尝试运行某些项目的命令时,我遇到了缺少的gem错误。如何在每个项目的基础上使用系统Ruby而不是rbenv?

该项目是自制软件,我运行的命令是brew style。当我在本地运行的命令,我得到如下:

Ignoring rainbow-2.2.2 because its extensions are not built. Try: gem pristine rainbow --version 2.2.2 
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- rainbow (LoadError) 
from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Users/richie.thomas/.gem/ruby/2.3.0/gems/rubocop-0.50.0/lib/rubocop.rb:4:in `<top (required)>' 
from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Users/richie.thomas/.gem/ruby/2.3.0/gems/rubocop-0.50.0/bin/rubocop:6:in `<top (required)>' 
from /Users/richie.thomas/.gem/ruby/2.3.0/bin/rubocop:22:in `load' 
from /Users/richie.thomas/.gem/ruby/2.3.0/bin/rubocop:22:in `<main>' 

运行gem environment返回如下:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.6.10 
    - RUBY VERSION: 2.3.3 (2016-11-21 patchlevel 222) [x86_64-darwin15] 
    - INSTALLATION DIRECTORY: /Users/richie.thomas/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0 
    - USER INSTALLATION DIRECTORY: /Users/richie.thomas/.gem/ruby/2.3.0 
    - RUBY EXECUTABLE: /Users/richie.thomas/.rbenv/versions/2.3.3/bin/ruby 
    - EXECUTABLE DIRECTORY: /Users/richie.thomas/.rbenv/versions/2.3.3/bin 
    - SPEC CACHE DIRECTORY: /Users/richie.thomas/.gem/specs 
.... 

我已经被其他捐助者告知,最简单的前进道路将很禁用或卸载rbenv为了运行命令。每次我想运行这个命令时,我都想避免卸载并重新安装rbenv,但rbenv documentation中没有提到这一点。

是否有任何一次性命令我可以运行,或者我可以更改任何配置设置,以便我可以做我需要做的事情?

回答

0

我重新运行gem environment,发现下面的环境变量定义:

INSTALLATION DIRECTORY: /Users/richie.thomas/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0 
USER INSTALLATION DIRECTORY: /Users/richie.thomas/.gem/ruby/2.3.0 

INSTALLATION DIRECTORY价值是什么,我预计将用于运行命令,我注意到的USER INSTALLATION DIRECTORY值什么出现在错误堆栈跟踪中。

由于我无法弄清楚我的机器如何确定要使用哪个变量,因此我只是将~/.gem/重命名为~/.gem2/,并重新运行了我原本想要的brew style命令。这是成功的!

相关问题