2015-05-12 16 views
10

Dlaczego nie działa bundle exec spring?"bundle exec spring" nie działa z rbenv?

Już dzwonię pod numer bundle exec, który zwraca błąd. Cały czas dzwonię pod numer bundle exec. (Jest to rozwiązanie ewentualnego powielonego pytania).

Nie zaktualizuję mojego Gemfile poprzez bundle update spring lub odinstaluj wersję spring, aby to działało. Nie powinienem być zmuszany do zmiany mojej instalacji klejnotów.

bundle binstubs spring też nie działa.

steve-air:finalcloud main$ spring -v 
Spring version 1.3.5 
steve-air:finalcloud main$ bundle exec spring -v 
Spring version 1.3.4 
steve-air:finalcloud main$ bundle exec spring 
/Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:34:in `block in setup': You have already activated spring 1.3.5, but your Gemfile requires spring 1.3.4. Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:19:in `setup' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler.rb:122:in `setup' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.7/lib/bundler/setup.rb:8:in `<top (required)>' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/commands.rb:33:in `<module:Spring>' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/commands.rb:4:in `<top (required)>' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/spring-1.3.5/lib/spring/server.rb:9:in `<top (required)>' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require' 
    from /Users/main/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require' 

Aby replikować:

  1. Have Ruby zainstalowany rebenv.
  2. Odinstaluj wszystkie klejnoty wiosenne.
  3. Zainstaluj niższą wersję sprężyny (np. 1.3.4).
  4. Utwórz nową aplikację Rails.
  5. Zainstaluj wyższą wersję Spring (1.3.5). Wygląda na to, że zniknął, ale został zreplikowany w wersji 1.3.6.
  6. Postępuj zgodnie z instrukcjami w powyższym wierszu poleceń.
+0

możliwe duplikat [Już aktywowany X, ale twój Gemfile wymaga Y] (http://stackoverflow.com/questions/6317980/you- have-already-activated-x-but-your-gemfile-requires-y) – tebayoso

+3

Wygląda na to, że 'core_ext' ładuje najnowszą wersję' spring' dostępną przed uruchomieniem 'bundler/setup'.Dopiero w tym momencie wygląda na twój Gemfile i zauważa, że ​​masz już nowszą wersję niż podaną w twoim Gemfile. Nie wiem, dlaczego zachowuje się inaczej po podaniu opcji '-v'. –

+0

Powinieneś uruchomić 'rbenv shell ', przed instalacją GEM. Tutaj wydaje się, że zainstalowałeś także ** Spring 1.3.5 ** wewnątrz 'rbenv shell ' – Abhi

Odpowiedz

7

Po trochę badań nie wydaje się tam może być kilka rzeczy w grze tutaj:

  1. Zainstalowany system klejnotów przez zainstalowane Bundler klejnotów oraz specjalne szyny Behavior
  2. generowane binstubs w RVM i wiązki poziom
  3. dziwne zachowanie wiosną 1.3.5

przyczyną problemu wydaje się być https://github.com/rails/spring/issues/295 która została ustalona w 1.3.6. Zobacz: https://github.com/rails/spring/blob/master/CHANGELOG.md#136

Niestety, okazuje się, że nie można obejść tego problemu z ograniczeniami podanymi przez autora w pytaniu.

3

To jest błąd na wiosnę, który został fixed in version 1.3.6.

Nie zaktualizuję mojego Gemfile (poprzez aktualizację pakietu) lub odinstaluj wersję wiosny, aby to działało - nie powinienem być zmuszany do zmiany instalacji klejnotów.

Niestety, są to jedyne znane rozwiązania w wersjach wcześniejszych niż 1.3.6.

+0

to w zasadzie konkluzja, która została osiągnięta w komentarzach powyżej :) – Mircea

+0

Tak ... Mircea, jeśli chcesz przeformułować swoje uwagi jako odpowiedź, z radością go przegłosuję! –

+0

:) W porządku. Dla mnie problem wydaje się bardzo konkretny. Cieszę się, że mogę pomóc – Mircea

1

Wystarczy odinstalować starszą wersję gem wiosennej

gem uninstall spring 
Powiązane problemy