2012-06-12 16 views
8

así que corro:No se puede activar rieles 3.0.1 debido a la versión bundler conflicto

$ 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... 

luego me sale el error:

$ 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>' 

Respuesta

3

Es posible que tenga que actualizar a bundler 1.1.4.

gem update bundler

debe hacer el truco.

+0

Tengo el mismo error que el anterior. Ejecuté esta solución, pero el paquete está "actualizado" y cuando pruebo rails -v nuevamente recibo el mismo resultado exacto que antes. ¡Ayuda! – stopshinal

+2

El problema aquí no es que el bundler esté desactualizado, sino que esté demasiado actualizado. '~> 1.0.0' significa cualquier versión de' 1.0.0' hasta, pero sin incluir, '1.1.0'. –

+0

Colin tiene razón, ver su respuesta, la mía no debe aceptarse para que pueda eliminarla. – ipd

1

Tuve el mismo problema con mysql. Desinstalé mysql gem e instalé la versión más nueva de mysql gem. ¿RVM está bien?

2

Esto posiblemente se deba a que Ruby v1.9.2/3 usa el paquete v1.1.4 mientras que Rails v3.0.1 requiere el paquete v ~ 1.0.0. Por lo tanto, simplemente actualizando la versión de Rails a v3.2.6, el conflicto se resuelve. Este conflicto se puede resolver fácilmente haciendo coincidir la versión de Ruby and Rails.

7

Así Rails 3.0.1 requiere Bündler v1.0.0-v1.0.22 (en realidad cualquier versión 1.0.x hasta, pero no incluyendo, 1.1.0), pero tiene una versión más reciente de Bündler que está siendo cargado cuando se inicia rieles. Puede desinstalar las versiones más nuevas de Bundler (aunque esta es una forma horrible de lidiar con el problema) o si está utilizando RVM, simplemente cree un gemset para 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: esto requiere que Bündler no estar en su global gemset para la versión de Ruby que está tratando de usar. Si el gemset global contiene una versión de Bundler igual o superior a la 1.1.0, entonces obtendrá el mismo error que antes.

Actualización: Una pequeña explicación sobre ~> y RubyGems de versiones podrían ser útiles. El section on pessimistic version constraint en los documentos de RubyGems hace un trabajo fantástico al cubrir todo.

Cuestiones relacionadas