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

时间:2010-10-26 11:16:34

标签: ruby-on-rails github gem bundler

我正在尝试使用searchlogic gem的this forked version。在我的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)'

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

使用:

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

答案 2 :(得分:0)

你的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"

注意缺少_。

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

答案 3 :(得分:-2)

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

Will searchlogic work with Rails 3?

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