所以我跑:
$ 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...
然后我收到错误:
$ 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/ruby-1.9.3-p125@rails3tutorial/bin/rails:18:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.3-p125@rails3tutorial/bin/ruby_noexec_wrapper:14:in `eval'
from /usr/local/rvm/gems/ruby-1.9.3-p125@rails3tutorial/bin/ruby_noexec_wrapper:14:in `<main>'
答案 0 :(得分:8)
所以Rails 3.0.1需要Bundler v1.0.0
- v1.0.22
(实际上任何1.0.x
版本,但不包括1.1.0),但你有更新版本的Bundler当Rails启动时正在加载。您可以卸载Bundler的较新版本(虽然这是处理问题的一种糟糕的方法),或者因为您正在使用RVM,只需为Rails 3.0.1创建一个gemset。
$ 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
注意:这要求Bundler不在您尝试使用的Ruby版本的global
gemset中。如果global
gemset包含的Bundler版本等于或高于1.1.0,那么您将得到与以前相同的错误。
更新:关于~>
和RubyGems版本控制的一点解释可能很方便。 RubyGems文档中的section on pessimistic version constraint在覆盖所有内容方面做得非常出色。
答案 1 :(得分:3)
您可能需要更新到bundler 1.1.4。
gem update bundler
应该这样做。
答案 2 :(得分:2)
这可能是由于Ruby v1.9.2 / 3使用的是bundler v1.1.4,而Rails v3.0.1则需要使用bundler v~1.0.0。因此,只需将Rails版本更新为v3.2.6,就可以解决冲突。通过匹配Ruby和Rails版本可以轻松解决这种冲突。
答案 3 :(得分:1)
我遇到了与mysql相同的问题。我卸载了mysql gem并安装了最新版本的mysql gem。 RVM好吗?