use*_*583 10 gem ruby-on-rails bundler
所以我跑:
$ 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...
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
$ 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>'
Run Code Online (Sandbox Code Playgroud)
因此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
Run Code Online (Sandbox Code Playgroud)
注意:这要求Bundler不在global您尝试使用的Ruby版本的gemset中.如果globalgemset包含的Bundler版本等于或高于1.1.0,那么您将获得与以前相同的错误.
更新:关于~>和RubyGems版本控制的一点解释可能很方便.RubyGems文档中关于悲观版本约束的部分在覆盖所有内容方面做得非常出色.
您可能需要更新到捆绑程序 1.1.4。
gem update bundler
应该可以解决问题。