无法激活 sinatra-1.4.7,因为 rack-2.0.1 与 rack (~> 1.5) 冲突

Unable to activate sinatra-1.4.7, because rack-2.0.1 conflicts with rack (~> 1.5)

我刚刚将我的 OS 从 Ubuntu 14.04 LTS 更新到 16.04,并且我是 运行 我的 Ruby Sinatra 项目。问题是在更新后我尝试 运行 服务器然后浏览器中的本地主机我得到了这个错误 引导错误

Something went wrong while loading app.rb
Gem::ConflictError: Unable to activate sinatra-1.4.7, because rack-2.0.1 conflicts with rack (~> 1.5)

/usr/lib/ruby/2.3.0/rubygems/specification.rb:2286:in `raise_if_conflicts'
/usr/lib/ruby/2.3.0/rubygems/specification.rb:1407:in `activate'
/usr/lib/ruby/2.3.0/rubygems.rb:196:in `rescue in try_activate'
/usr/lib/ruby/2.3.0/rubygems.rb:193:in `try_activate'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:125:in `rescue in require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
/home/leandro/Downloads/git-master/ruby sinatra/app.rb:1:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:115:in `inner_app'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:103:in `assemble_app'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:86:in `proceed_as_child'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:31:in `call!'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:18:in `call'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/favicon.rb:12:in `call'
/var/lib/gems/2.3.0/gems/shotgun-0.9.1/lib/shotgun/static.rb:14:in `call'
/var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/urlmap.rb:68:in `block in call'
/var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/urlmap.rb:53:in `each'
/var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/urlmap.rb:53:in `call'
/var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/builder.rb:153:in `call'
/var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/handler/webrick.rb:86:in `service'
/usr/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
/usr/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
/usr/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'

我已经尝试 gem 在包含 app.rb 的文件夹中安装捆绑包和捆绑包。我也把 gem "rack", "~> 1.5" 放在 gem 文件中,但我仍然有同样的错误。你能帮我么?非常感谢

我今天在尝试 运行 我维护的一套自动化测试时遇到了类似的问题(完全相同的错误消息)。

Gem::ConflictError: Unable to activate sinatra-1.4.7, because rack-2.0.1 conflicts with rack (~> 1.5)

我在 this Japanese (?) blog

上找到了解决方案

卸载 rack-2.0.1 对我有用

> gem uninstall rack

Select gem to uninstall:
 1. rack-2.0.1
 2. rack-1.6.4
 3. All versions

> 1

Successfully uninstalled rack-2.0.1

我有同样的问题,rack 2.0.1 版是Rails 5 的依赖项,所以我无法删除它。所以我找到了一个不同的(更好的?)解决方法。

确保这在您的 Gemfile 中:

gem 'rack', '<2.0'
gem 'sinatra'

...那么 bundle exec <server-start-command> 应该会按预期工作。

由于某种原因,当我将 gem 添加到 Gemfile (rspec-sidekiq) 并且忘记执行时,发生了这种情况:

 bundle install