UncleGene
UncleGene

Reputation: 2142

Problems with bundled gems and datamapper: conflict with muti_json version?

I have a site running with nginx/unicorn/sinatra (bundler/rvm). After my last bundle update, I am getting an error:

in `raise_if_conflicts': Unable to activate dm-serializer-1.2.1, because multi_json-1.3.5 conflicts with multi_json (~> 1.0.3)

My Gemfile is:

source "http://rubygems.org"

gem 'unicorn'
gem 'sinatra'
gem 'datamapper'
gem 'dm-mysql-adapter'
gem 'haml'
gem 'sass'
gem 'omniauth-twitter'

Gemfile.lock does not have any reference to multi_json 1.0.3

Any ideas?

Upvotes: 2

Views: 824

Answers (3)

UncleGene
UncleGene

Reputation: 2142

Solution was:

  • check Gemfile.lock to see which gem(s) bring in later version (in this case - omniauth-twitter)
  • Find a version of 'offender' that does not require too high version
  • Rollback later versions, lock to a proper version in Gemfile

In this particular case, Gemfile that works needed lines:

gem 'omniauth-twitter', '0.0.9'
gem 'multi_json', '~> 1.0.3'

Upvotes: 1

Samy Dindane
Samy Dindane

Reputation: 18716

This is how to fix this problem:

rvm uninstall multi_json

It will tell you that you have many versions installed, show you a list of them, and ask you which one exactly you want to uninstall.
Try the first one, if it tells you that it is used by some other gem, try the second one, and so on. Keep deleting all the unused versions until only one remains.

This is how I do it, but there may be some clearner solution. If anyone knows it, thanks for sharing it with us.

Upvotes: 0

x1a4
x1a4

Reputation: 19485

One of the gems in your bundle has an older version of multi_json as a dependency it looks like. See if bundle viz tells you. You'll need to install the ruby-graphviz gem and graphviz itself if you don't have them installed already, though.

Another way to see what's up is to add multi_json to your gemfile at the version you're trying to upgrade to, then do a bundle install and see what errors come out.

Upvotes: 0

Related Questions