10

所以我跑:

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

4 回答 4

8

所以 Rails 3.0.1 需要 Bundler v1.0.0- v1.0.22(实际上是任何1.0.x版本,但不包括 1.1.0),但是当 Rails 启动时,你有一个更新版本的 Bundler。您可以卸载较新版本的 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 不在global您尝试使用的 Ruby 版本的 gemset 中。如果globalgemset 包含等于或高于 1.1.0 的 Bundler 版本,那么您将收到与以前相同的错误。

更新:关于~>RubyGems 版本控制的一点解释可能会很方便。RubyGems 文档中关于悲观版本约束的部分在涵盖所有内容方面做得非常出色。

于 2012-09-24T19:32:24.793 回答
3

您可能需要更新到 bundler 1.1.4。

gem update bundler

应该做的伎俩。

于 2012-06-12T19:33:01.513 回答
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 版本可以轻松解决这种冲突。

于 2012-09-24T14:42:53.390 回答
1

我对mysql有同样的问题。我卸载了 mysql gem 并安装了最新版本的 mysql gem。RVM 好吗?

于 2012-06-12T19:36:32.823 回答