【Ruby on Rails】The `rails' command exists in these Ruby versions エラーの解決方法
2分で読める
テック
最終更新:
Railsをインストールして rails --version を実行したときに、次のエラーが出て困ったことがあります。
The `rails' command exists in these Ruby versions:
2.x.x
「railsコマンドはインストールしたはずなのに使えない」という状況です。原因と解決方法を整理します。
開発環境
- Ruby: 2.5.1
- Rails: 6.0.0
エラーの原因
このエラーは、rbenvやrvmでRubyのバージョンを切り替えた後、新しいRubyバージョン向けにgemが入っていないときに発生します。
rbenvやrvmはRubyのバージョンを切り替える仕組みですが、gemはRubyのバージョンごとに管理されています。そのため、新しいバージョンに切り替えると、以前のバージョンにインストールしていたgemは使えなくなります。
エラーメッセージの意味は「railsコマンドは別のRubyバージョンには存在するが、今使っているバージョンにはインストールされていない」ということです。
解決方法
現在使用しているRubyバージョンにrailsを再インストールします。
$ gem install rails
インストール完了後、コマンドが使えるか確認します。
$ rails --version
Rails 6.0.0
rbenvを使っている場合、gemをインストールした後に rbenv rehash が必要なこともあります。
$ rbenv rehash
まとめ
rbenv / rvm でRubyのバージョンを切り替えた後は、必要なgemをそのバージョン向けに再インストールする必要があります。バンドラーを使っている場合も、bundle install を改めて実行しておくとよいです。
Rubyのバージョン管理とgem管理は別物として理解しておくと、同種のエラーに遭遇したときにすぐ原因を特定できます。
記事の更新をメールで受け取る
質問・リクエストを送る
記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。