2016-08-02 49 views
11

Właśnie zaktualizowałem mój system operacyjny z Ubuntu 14.04 LTS do 16.04, a tam pracowałem nad projektem Ruby Sinatra. Chodzi o to, po aktualizacji Próbowałem prowadził serwer i następnie localhost w przeglądarce Mam ten błąd Boot ErrorNie można aktywować sinatra-1.4.7, ponieważ rack-2.0.1 powoduje konflikty ze stelażem (~> 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' 

Próbowałem już gem zainstalować pakiet i zainstalować pakiet wewnątrz folderu zawierającego app.rb. Umieściłem również klejnot "rack", "~> 1.5" w pliku gem, ale nadal mam ten sam błąd. Możesz mi pomóc? bardzo dziękuję z góry

Odpowiedz

14

Miałem podobny problem (dokładnie ten sam komunikat o błędzie), kiedy próbowałem uruchomić zestaw automatycznych testów, które utrzymuję, które w jakiś sposób zależą od Sinatry.

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

znalazłem rozwiązanie na this Japanese (?) blog

Odinstalowanie rack-2.0.1 wystarczyły mi

> 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

Mam ten sam problem, a rack wersja 2.0.1 jest dependecy Rails 5, więc nie mogę go usunąć. Więc znalazłem inny (lepszy?) Sposób wokół niego.

Upewnij się, że jest w swoim Gemfile:

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

... potem bundle exec <server-start-command> powinien działać zgodnie z oczekiwaniami.

1

Z jakiegoś powodu to się stało, kiedy dodałem gem do Gemfile (rspec-sidekiq) i zapomniał zrobić:

bundle install