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

注: これには、global使用しようとしている Ruby バージョンの gemset に Bundler が含まれていないことが必要です。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 がバンドラー v1.1.4 を使用するのに対し、Rails v3.0.1 はバンドラー 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 に答える