2016-07-21 12 views
14

新しい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を使用しようとしている間に発生しませんか?

答えて

25

あなたの意志のルビーバージョンを使用することはできますが、最新バージョンのRailsではルビバージョンを使用することはできません。 gem install railsを実行すると、最新のRailsのバージョン(Rails 5)が得られます。これはRuby 2.1.2と全く互換性がありません。

Ruby 2.1.2を本当に使いたい場合は、gem install rails -v 4.2.2を試してみてください。

gemsetの使い方として、私はこれがきちんと編成されているのが好きなので、私はグローバルを使用しません。私はいつもすべてのプロジェクトに新しい宝石を作ります。これは、私が宝石間の互換性を失うことなく、それぞれがルビーとレールのバージョンを持つ多くのプロジェクトを持つことができることを保証します。あなたのRuby on Railsワークスペースのようなものです。あなたがプロジェクトでそれらを分けるならば、あなたは宝石の非互換性で奇妙さのオッズを最小限に抑えます。

+0

あなたの最初のポイントは、私の質問に答えます。しかし、あなたの2番目の点は私が同意しなければならないことです。新しいgemsetを作成するたびに、各プロジェクトに似た宝石の複製が作成されます。バンドラーの全目的は、依存関係の問題を解決し、Gemfileを使用して適切な宝石をロードすることです。そのため、宝石の非互換性に奇妙なことは起こりません。 – Donato

+2

@Donatoは私の心の中からランダムには出てこない。それは私の願いではありませんでした。 最も信頼できるソースから仕様を読むことができます。https://rvm.io/gemsets/basics 「警告!セッション: "RVMは、各Rubyバージョンとgemsetごとに別々のgemディレクトリを提供します*これは、リビジョンとgemsetごとに明示的に宝石をインストールする必要があることを意味します。 – GPrimola

6
gem install rails 

上記のコマンドは、最新のバージョンのレール、つまり> = ruby​​ 2.2.2を必要とするRails 5の安定版リリースを使用します。

2.1.2をRailsのより低いバージョンで使用できます。例えば、あなたの問題を解決することがあり、レールを取り付ける時にバージョンを指定してください:

gem install rails --version 4.2.4 

または

gem install rails -v 4.2.4 

を、それが動作するかどうか私に教えてください。 ありがとうございます。

1

私はCocoaPod FOREそれに直面し、それが次で修正されています。

  1. sudoの宝石がactivesupportの-v 4.2をインストールします。RVMを使用して6
  2. sudoの宝石cocoapodsをインストール

https://github.com/CocoaPods/CocoaPods/issues/5603

0

私のために働いた、私が指示here

curl -sSL https://rvm.io/mpapis.asc | gpg --import - &&\ 
curl -L get.rvm.io | bash -s stable &&\ 
source /etc/profile.d/rvm.sh && /usr/local/rvm/bin/rvm reload &&\ 
/usr/local/rvm/bin/rvm requirements run &&\ 
/usr/local/rvm/bin/rvm install 2.2.4 &&\ 
/usr/local/rvm/bin/rvm use 2.2.4 --default && ruby --version 

私の環境はCentOSのとドッカーコンテナが

0
をインストールしました続いてきました

ご使用の場合rbenv

そのrbenvが正しくこのrbenv-医師のスクリプトを使用して設定されていることを確認してください:

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash 
関連する問題