2012-06-12 6 views
8

così corro:Impossibile attivare rotaie 3.0.1 a causa della versione bundler conflitto

$ gem install rails --version 3.0.1 

Successfully installed rails-3.0.1 
1 gem installed 
Installing ri documentation for rails-3.0.1... 
Installing RDoc documentation for rails-3.0.1... 

tanto sono l'errore:

$ rails -v 
/usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1637:in `raise_if_conflicts': Unable to activate rails-3.0.1, because bundler-1.1.4 conflicts with bundler (~> 1.0.0) (Gem::LoadError) 
from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:746:in `activate' 
from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1232:in `gem' 
from /usr/local/rvm/gems/[email protected]/bin/rails:18:in `<main>' 
from /usr/local/rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /usr/local/rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

risposta

3

Potrebbe essere necessario aggiornare a bundler 1.1.4.

gem update bundler

dovrebbe fare il trucco.

+0

Ho lo stesso errore di cui sopra. Ho eseguito questa correzione, ma bundler è "aggiornato" e quando provo rails -v di nuovo ricevo lo stesso output esatto di prima. Aiuto! – stopshinal

+2

Il problema qui non deriva dal fatto che il bundler non è aggiornato, ma piuttosto aggiornato. '~> 1.0.0' indica qualsiasi versione da' 1.0.0' fino a, ma non incluso, '1.1.0'. –

+0

Colin ha ragione, guarda la sua risposta, la mia dovrebbe essere rifiutata e posso rimuoverla. – ipd

1

Ho avuto lo stesso problema con mysql. Ho disinstallato mysql gem e ho installato la versione più recente di mysql gem. RVM è ok?

2

Ciò è probabilmente dovuto a Ruby v1.9.2/3 utilizza bundler v1.1.4 mentre Rails v3.0.1 richiede bundler v ~ 1.0.0. Quindi, semplicemente aggiornando la versione di Rails alla v3.2.6, il conflitto viene risolto. Questo conflitto può essere facilmente risolto abbinando la versione Ruby e Rails.

7

Così Rails 3.0.1 richiede Bundler v1.0.0-v1.0.22 (in realtà qualsiasi versione 1.0.x fino a, ma non incluso, 1.1.0), ma si dispone di una versione più recente di Bundler che viene caricato quando si avvia Rails. È possibile disinstallare le versioni più recenti di Bundler (anche se questo è un modo scadente per affrontare il problema) o poiché si utilizza RVM, è sufficiente creare un gemset per Rails 3.0.1.

$ rvm gemset create rails_3.0.1 
$ rvm gemset use rails_3.0.1 
$ gem install rails -v 3.0.1 
$ rails -v 
3.0.1 

Nota: questo richiede che Bundler non essere nella vostra global GemSET per la versione di Ruby si sta cercando di utilizzare. Se il gemset global contiene una versione Bundler uguale o superiore a 1.1.0, si otterrà lo stesso errore di prima.

Aggiornamento: Una piccola spiegazione su ~> e RubyGems delle versioni potrebbero essere a portata di mano. Lo section on pessimistic version constraint nei documenti RubyGems fa un lavoro fantastico di copertura di tutto.