2016-08-02 30 views
11

我剛剛將Ubuntu 14.04 LTS的操作系統更新到了16.04,並且在那裏運行了我的Ruby Sinatra項目。關鍵是更新後我試着跑了服務器,然後在本地主機瀏覽器中我得到這個錯誤 引導錯誤無法激活sinatra-1.4.7,因爲rack-2.0.1與機架衝突(〜> 1.5)

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' 

我已經嘗試過創業板安裝捆綁和捆綁安裝包含app.rb.裏面的文件夾我也把gem「rack」,「〜> 1.5」放在gem文件中,但是我仍然有同樣的錯誤。你能幫我麼?預先感謝很多

回答

14

我今天有一個類似的問題(完全相同的錯誤消息),當試圖運行一套自動化測試時,我保持某種程度上取決於Sinatra。

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 
5

我有同樣的問題,並rack版本2.0.1的Rails 5的dependecy,所以我不能刪除它。所以我發現了一個不同的(更好的)方法。

確保這是您的Gemfile:

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

...然後bundle exec <server-start-command>應該按預期工作。

1

出於某種原因,發生這種情況時,我加入了寶石的Gemfile(rspec的-sidekiq)和忘了做:

bundle install 
相關問題