Ruby 安装在@global gemset中的Gem在其他gemset中不可用
我安装了Ruby 安装在@global gemset中的Gem在其他gemset中不可用,ruby,gem,rvm,gemset,Ruby,Gem,Rvm,Gemset,我安装了rvm,然后安装在@global gemset中 $ rvm install 2.2.3 $ rvm use ruby-2.2.3@global $ gem install bropages 当我跑的时候 $ gem list | grep bro bropages (0.1.0) 我可以看到bropages已安装。但当我移动到默认的gemset时,它不可用 $ rvm use ruby-2.2.3@default $ gem list | grep bro # Result is
rvm
,然后安装在@global gemset中
$ rvm install 2.2.3
$ rvm use ruby-2.2.3@global
$ gem install bropages
当我跑的时候
$ gem list | grep bro
bropages (0.1.0)
我可以看到bropages已安装。但当我移动到默认的gemset时,它不可用
$ rvm use ruby-2.2.3@default
$ gem list | grep bro # Result is empty
我也试过了
但它也不起作用
在默认gemset中运行bro
命令会出现此错误
$ bro
/Users/andy/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bropages' (>= 0) among 7 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/andy/.rvm/gems/ruby-2.2.3 /Users/andy/.rvm/gems/ruby-2.2.3@global:/Users/andy/.rvm/gems/ruby-2.2.3', execute `gem env` for more information
from /Users/andy/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/andy/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /Users/andy/.rvm/gems/ruby-2.2.3@global/bin/bro:22:in `<main>'
您的
GEM\u路径似乎已断开,请运行:
export GEM_PATH=/Users/andy/.rvm/gems/ruby-2.2.3:/Users/andy/.rvm/gems/ruby-2.2.3@global
然后重试:
bro
从默认gemset运行:echo$GEM\u HOME-$GEM\u PATH
从全局gemset运行:GEM list-d bro
@mpapis我已使用输出更新了问题。您的$GEM\u PATH
设置错误,它有一个空格而不是一个空格colon@mpapisrvm推荐的鱼壳脚本中有一个bug。请看我的评论。谢谢。用:
替换GEM\u路径中的“`in
”,为我解决了这个问题。这引发了另一个问题,每次我安装ruby时,rvm都会错误地设置GEM\u路径。你能告诉我rvm在哪里设置GEM_PATH
,这样我就可以解决所有红宝石的问题吗?我认为这个问题是由于在鱼壳中使用rvm造成的。我在bashshell中安装了一个新的ruby版本,并且rvm正确地设置了GEM\u路径。但是当我在fish shell中安装ruby时,GEM_路径中的:
被替换为
`,这会破坏gems.rvm建议的fish shell。我怀疑这一行是罪魁祸首好吧,所以这个问题已经被注意到并在这里修复了补丁在我创建这个问题时没有被接受到上游。该补丁修复了这个问题。
export GEM_PATH=/Users/andy/.rvm/gems/ruby-2.2.3:/Users/andy/.rvm/gems/ruby-2.2.3@global
bro