Вопрос

Я пытаюсь использовать монгоид с простого рубрического скрипта (не через рельсы или любые другие рамки), и я думаю, что я работаю в некоторых конфликтах зависимостей в зависимостию:

/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

Мои местные рельсы были обновлены до 3.0.0 уже, и если я правильно прочитал ошибку, где-то есть требование, говорящий, что ActiveSupport должен быть <3.0.PRE, а 3.0.0 слишком новый?

Это потому, что Rails 3.0 является совершенно новым, и, возможно, Mongoid имеет опцию конфигурации где-то с 3.0.PRE определен, что мне нужно обновить? Где бы я это сделал?

У меня были слишком установленные старые рельсы, но получили другую ошибку:

/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, поэтому, пожалуйста, уточните в своем ответе.

После обновления до предположения Mongoid 2.0 Beta Per Simon, я получаю новый конфликт о 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 требует, это рубиггемы и мольгобы в этот момент.

Вот все драгоценные камни, которые я использую этот звук, актуален:

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)
Это было полезно?

Решение

Я думаю, что я столкнулся с той же проблемой. Кажется, это вызвано столкновением зависимости. Mongo 1.0.8 будет тянуть в BSON 1.0.7, но монгоид зависит от BSON 1.0.4, что приводит к столкновению. Я думаю, что все сводится к самым конкретным зависимым, которые у монгоидной бета есть.

Мне удалось получить эту комбинацию драгоценных камней, работающих вместе:

activemodel (3.0.0)
activesupport (3.0.0)
rails (3.0.0)
mongo (1.0.7)
mongoid (2.0.0.beta.18)
bson (1.0.4)

Это означало, что мне пришлось явно установить Mongo 1.0.7 и BSON 1.0.4 и удалил последние версии (Mongo 1.0.8 и BSON 1.0.7). Я тогда смог запустить простой скрипт.

Другие советы

Действительно, есть конфликт в версии драгоценного камня.

Есть две версии мондоида доступны прямо сейчас: * 1.9.1 Стабильно * 2.0,0 бета

Оба должны хорошо работать с рельсами 3. Даже мондоид 1.9.1, что немного более старое, зависит от activesupport <= 3.0.0 что означает, что рельсы 3 является действительной зависимостью. Возможно, вы все еще работаете с Rails 3 RC.

Я предлагаю вам:

  1. Убедитесь, что вы изменили свой драгоценные данные, чтобы использовать рельсы 3, регенерируем ваш Gemfile.lock и переустановить зависимости

    gem "rails", 3.0.0"
    
    $ bundle update
    $ bundle install
    
  2. Если проблема сохраняется, попробуйте обновить до Mongoid 2.0.0 Beta.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top