【发布时间】:2010-08-31 11:43:57
【问题描述】:
我正在尝试从普通的 Ruby 脚本(不是通过 Rails 或任何其他框架)中使用 Mongoid,我认为我遇到了一些版本依赖冲突:
/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': RubyGem version error: activesupport(3.0.0 not >= 2.2.2, < 3.0.pre) (Gem::LoadError)
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
from /opt/local/lib/ruby/gems/1.8/gems/mongoid-1.9.1/lib/mongoid.rb:24
from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from ./rubymongo.rb:4
我的本地 Rails 已经升级到 3.0.0,如果我正确阅读错误,某处要求 activesupport 必须
这是因为 Rails 3.0 是全新的,也许 Mongoid 在某处有一个配置选项,其中 3.0.pre 定义了我需要升级?我会在哪里做呢?
我以前也安装了旧的 Rails,但出现了不同的错误:
/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate activesupport (>= 2.2.2, < 3.0.pre, runtime) for [], already activated activesupport-3.0.0 for ["mongoid-1.9.1"] (Gem::LoadError)
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
from /opt/local/lib/ruby/gems/1.8/gems/mongoid-1.9.1/lib/mongoid.rb:24
from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from ./rubymongo.rb:4
如果我重新安装旧的 activesupport,我如何确保新的也不会受到攻击?
我对 Ruby 还是很陌生,所以请详细说明你的答案。
根据 Simon 的建议升级到 Mongoid 2.0 测试版后,我遇到了关于 bson 太新的新冲突:
/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate bson (= 1.0.4, runtime) for ["mongoid-2.0.0.beta.17"], already activated bson-1.0.7 for ["mongo-1.0.7", "mongoid-2.0.0.beta.17"] (Gem::LoadError)
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:35:in `require'
from ./rubymongo.rb:4
为什么 bson 1.0.4 已经加载了?是否有其他东西试图显式加载它?在这一点上,我所有的简单 .rb 脚本只需要 rubygems 和 mongoid。
这是我使用的所有听起来相关的宝石:
actionpack (3.0.0, 2.3.8)
activemodel (3.0.0)
activerecord (3.0.0)
activeresource (3.0.0)
activesupport (3.0.0)
bson (1.0.7, 1.0.4)
bson_ext (1.0.7)
mongo (1.0.8, 1.0.7)
mongo_ext (0.19.3)
mongoid (2.0.0.beta.17)
rails (3.0.0, 2.3.8)
【问题讨论】:
-
非常好的问题!我遇到了类似的情况。我只是想与 Rails 分开做一些基准测试。 Steve Hook 的建议效果很好。