gem依赖版本在gem的spec,bundler和gem install之间发生冲突

时间:2011-09-20 18:16:22

标签: ruby-on-rails-3 rubygems bundler gemspecs

我正在尝试安装gem,meta_search-1.1.0.pre2。 gem的spec,bundler和rubygems都报告/安装不同的依赖版本要求。

我有一个新的rails3项目(here are my rails, ruby, rubygems and installed gem versions),我的Gemfile中有一个新行:

gem 'meta_search', '1.1.0.pre2'

meta_search's page on rubygems.org报告了这些依赖关系:

actionpack ~> 3.1.0.alpha
activerecord ~> 3.1.0.alpha
activesupport ~> 3.1.0.alpha

但是,安装它会拉下activesupport和activemodel-3.1.1.rc1:

 muldoon@fedora14$ gem install meta_search -v 1.1.0.pre2
 Fetching: activesupport-3.1.1.rc1.gem (100%)
 Fetching: meta_search-1.1.0.pre2.gem (100%)

 Fetching: activemodel-3.1.1.rc1.gem (100%)
 Successfully installed activesupport-3.1.1.rc1
 Successfully installed meta_search-1.1.0.pre2
 Successfully installed activemodel-3.1.1.rc1
 3 gems installed

..和bundler报告meta_search需要activesupport-3.1.0.beta1。

muldoon@fedora14$ bundle update
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "activesupport":
  In Gemfile:
    rails (= 3.1.0) depends on
      activesupport (= 3.1.0)

    meta_search (= 1.1.0.pre2) depends on
      activesupport (3.1.0.beta1)

很奇怪!有什么建议吗?

THX! 麦克

2 个答案:

答案 0 :(得分:0)

当您运行bundle install时,您是否收到任何错误? Bundler应该使用此命令解决任何依赖性问题。

当您运行bundle update时,它会搜索每个gem的最新版本。

答案 1 :(得分:0)

如果您使用的是导轨3.1.0,则应使用meta_search 1.1.0,如下所示:

gem 'meta_search', '1.1.0'