(Rails やその他のフレームワークではなく) プレーンな Ruby スクリプトから 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 は < 3.0.pre である必要があり、3.0.0 は新しすぎるという要件がどこかにありますか?
これは、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
以前のアクティブ サポートをインストールした状態に戻った場合、新しいアクティブ サポートも影響を受けないようにするにはどうすればよいですか?
私はまだ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)