在我的gemfile中从Github指定一个gem的分叉版本时,“找不到gem”错误

我正在尝试使用searchlogic gem的这个分叉版本 。 在我的gemfile中,我有

gem "searchlogic", :git => "http://github.com/railsdog/searchlogic.git" 

当我进行bundle install ,我收到此错误:

 Could not find gem 'searchlogic (>= 0, runtime)' in http://github.com/railsdog/searchlogic.git (at master). Source does not contain any versions of 'searchlogic (>= 0, runtime)' 

导致此错误的原因是什么? 谢谢阅读。

这是因为你的fork没有通过rd_searchlogic gem定义searchlogic gem。 所以在你的Gemfile中使用:

 gem "rd_searchlogic", :git => "rd_searchlogic.gemspec", :require => "searchlogic" 

使用:

 gem 'rd_searchlogic', :git => 'https://github.com/railsdog/searchlogic.git', :require => 'searchlogic' 

你的fork的.gemspec可能包含与RubyGems上的gem不同的名称,例如当我在GitHub上分叉active_merchant时,他们的.gemspec文件具有:

 s.name = 'activemerchant' 

但是gem在RubyGems上被定义为active_merchant所以我改变了我的Gemfile:

 gem "active_merchant", git: "https://github.com/adamwaite/active_merchant.git", require: "active_merchant" 

至:

 gem "activemerchant", git: "https://github.com/adamwaite/active_merchant.git", require: "active_merchant" 

注意缺少_。

之后一切都很完美。 这可能是一个不起眼的案例,但希望它可以帮助某人!

它看起来不像是为Rails3升级了gem。 从Github中列出的问题来看,似乎searchlogic严重依赖于ActiveRecord2,并且可能无法为Rails 3轻松升级。可能值得研究另一种选择。

searchlogic会与Rails 3一起使用吗?

http://github.com/binarylogic/searchlogic/issues/issue/65