2017-10-16 64 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命令。這是成功的!

相關問題