新しいRailsアプリケーションを作成します。私はruby-2.1.2でrvmを使用しています。私はのgemsetを使用しており、gemの依存関係を管理するためにbundlerを使用する予定です。しかし、gem install rails
は失敗します。Railsのインストールに失敗しました:activesupportでRubyバージョン> = 2.2.2が必要です
$ gem install rails
Fetching: concurrent-ruby-1.0.3.pre3.gem (100%)
Successfully installed concurrent-ruby-1.0.3.pre3
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: activesupport-5.0.0.gem (100%)
ERROR: Error installing rails:
activesupport requires Ruby version >= 2.2.2.
はい、それは私がルビー-2.1.2を使用していないルビー2.2.2を、私はまだルビー-2.1.2を使用することを許されるべきではないのです本当ですか?もはやruby-2.1.2を使用することはできませんか?
私はactivesupportの5が既に@global
gemsetにインストールされていたし、そのactivesupportの5は2.2.2を必要としますが、実際に@global
gemsetにはactivesupportの5がないことかもしれないと思った:
$ rvm gemdir
/Users/myuser/.rvm/gems/[email protected]
$ cd /Users/myuser/.rvm/gems/[email protected]
$ cd gems
$ ls
bundler-unload-1.0.2 gem-wrappers-1.2.4 rake-10.1.0 rvm-1.11.3.9 tzinfo-1.2.2
concurrent-ruby-1.0.3.pre3 i18n-0.7.0 rdoc-4.1.0 test-unit-2.1.2.0
executable-hooks-1.3.2 minitest-5.9.0 rubygems-bundler-1.4.4 thread_safe-0.3.5
それでは、どのように私は防ぐことができますこのエラーは、ruby-2.1.2を使用しようとしている間に発生しませんか?
あなたの最初のポイントは、私の質問に答えます。しかし、あなたの2番目の点は私が同意しなければならないことです。新しいgemsetを作成するたびに、各プロジェクトに似た宝石の複製が作成されます。バンドラーの全目的は、依存関係の問題を解決し、Gemfileを使用して適切な宝石をロードすることです。そのため、宝石の非互換性に奇妙なことは起こりません。 – Donato
@Donatoは私の心の中からランダムには出てこない。それは私の願いではありませんでした。 最も信頼できるソースから仕様を読むことができます。https://rvm.io/gemsets/basics 「警告!セッション: "RVMは、各Rubyバージョンとgemsetごとに別々のgemディレクトリを提供します*これは、リビジョンとgemsetごとに明示的に宝石をインストールする必要があることを意味します。 – GPrimola