How to Solve Ruby Gem Dependency Conflicts


On a recent bundle install I ran into gem which relied on an old version of Celluloid which was already installed on my computer. I got this error:

While executing gem ... (Gem::ImpossibleDependenciesError)
adhearsion-2.6.0 requires celluloid (~> 0.14) but it conflicted:
Activated celluloid-0.16.0 instead of (~> 0.15.2) via:     punchblock-2.6.0, adhearsion-2.6.0
...

What’s the solution? Create a Gemfile which you can bundle instead of trying to resolve it with rbenv or rvm:

source ‘https://rubygems.org’

gem ‘adhearsion’, ‘2.5.4’
gem ‘punchblock’, ‘2.5.2’
gem ‘celluloid’, ‘0.15.2’

Source for this solution.