1. ホーム
  2. ruby-on-rails

[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。

2022-02-04 19:33:52

質問

新しいRailsアプリを作りたいのですが、どうすればいいですか?私はruby-2.1.2でrvmを使用しています。私は @global gemset を使用し、bundler を使用して gem の依存関係を管理する予定です。しかし gem install rails が失敗します。

$ 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.

確かに私は ruby-2.1.2 を使っていて ruby-2.2.2 は使っていないのですが、それでも ruby-2.1.2 を使っていいはずではありませんか? もうruby-2.1.2を使うことは許されないのでしょうか?

もしかしたら、ActiveSupport 5がすでにインストールされているのかと思いましたが @global gemset で、ActiveSupport 5 は 2.2.2 を必要としていたのですが、実際には @global gemsetです。

$ rvm gemdir
/Users/myuser/.rvm/gems/ruby-2.1.2@global
$ cd /Users/myuser/.rvm/gems/ruby-2.1.2@global
$ 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を使おうとして、このエラーが発生しないようにするにはどうしたらいいでしょうか?

解決方法は?

Rubyのバージョンは自由に選択できますが、Railsの最新版では任意のRubyバージョンを使用することはできません。 このような場合 gem install rails はRailsの最新版(Rails 5)になっていて、Ruby 2.1.2とは全く互換性がありません。

どうしてもRuby2.1.2を使いたい場合は、こちらを試してみてください。 gem install rails -v 4.2.2 .

gemsetの使い方ですが、私はこのようにかなり整理されたものが好きなので、グローバルを使うことはありません。私は常にすべてのプロジェクトに新しいgemsetを作成します。これは、私が多くのプロジェクトを持っていて、それぞれがrubyとrailsのバージョンを持っていて、gems間の非互換性がないことを保証するものです。このようにgemsetはRuby on Railsのワークスペースとなります。プロジェクトごとに分けておけば、gemの非互換性でおかしなことになる確率を最小にすることができます。