我有一个运行nginx / unicorn / sinatra(bundler / rvm)的网站。
在我上一次bundle update
之后,我收到了一个错误:
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)
我的Gemfile是:
source "http://rubygems.org"
gem 'unicorn'
gem 'sinatra'
gem 'datamapper'
gem 'dm-mysql-adapter'
gem 'haml'
gem 'sass'
gem 'omniauth-twitter'
Gemfile.lock没有对multi_json 1.0.3的任何引用
有什么想法吗?
答案 0 :(得分:1)
解决方案是:
在这种特殊情况下,Gemfile可以运行所需的行:
gem 'omniauth-twitter', '0.0.9'
gem 'multi_json', '~> 1.0.3'
答案 1 :(得分:0)
您的捆绑包中的一个宝石具有旧版本的multi_json
作为它的依赖关系。看看bundle viz
是否告诉您。如果你还没有安装ruby-graphviz
gem和graphviz,你需要安装它们。
另一种查看内容的方法是将multi_json
添加到您尝试升级到的版本的gemfile中,然后执行bundle install
并查看出现的错误。
答案 2 :(得分:0)
这是解决此问题的方法:
rvm uninstall multi_json
它会告诉您安装了许多版本,显示了它们的列表,并询问您要卸载哪个版本。
尝试第一个,如果它告诉你它被其他宝石使用,请尝试第二个,依此类推。继续删除所有未使用的版本,直到只剩下一个。
我就是这样做的,但可能有一些 clearner 解决方案。如果有人知道,感谢您与我们分享。