LoginSignup
0
0

More than 5 years have passed since last update.

Ruby 2.5.1 をインストールしたのに Your Ruby version is 2.4.2 と言われた際の対処

Last updated at Posted at 2018-09-03

環境

  • Windows7 Professional SP1 のパソコン
  • Ruby 2.4.2 をインストール済み
  • ローカルで Rails アプリケーションを動作

ちなみに Ruby 2.4.2 はインストーラで入れました。
https://rubyinstaller.org/downloads/

事象

前述の環境で Ruby の 2.5.1 をインストールしてから bundle install を実行した際にこんなエラーが出ました。インストールは 2.4.2 のときと同様にインストーラで行いました。

$ bundle install
Your Ruby version is 2.4.2, but your Gemfile specified 2.5.1

ちなみに ruby -v ではちゃんと 2.5.1 が出る状態にも関わらずです。

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]

bundle も2.5のbinから実行されています。

$ which bundle
/c/Ruby25-x64/bin/bundle

bundle のバージョンは 1.16.4 です。

$ bundle -v
Bundler version 1.16.4

対処

ruby 2.5 のインストーラ実行時、パスも通してくれるのですがユーザー環境変数のPATHが以下のようになっていました。
2.4 の環境変数も残っています。

ユーザー環境変数のPATH(before)
C:\Ruby25-x64\bin;%JAVA_HOME%\bin;C:\Ruby24-x64\bin;...(省略)

この場合、左から処理され C:\Ruby25-x64\bin; が採用されるはず(ruby -v 実行時は実際2.5.1が表示)なんですが、rubyのパスが2つあるのが気持ちわるかったので念のため2.4は削除して下記のようにしました。

ユーザー環境変数のPATH(after)
%JAVA_HOME%\bin;C:\Ruby25-x64\bin;...(省略)

プロンプトを立ち上げなおして再度 bundle install を実行したら今度はうまくいきました。

$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..

(省略)

Bundle complete! 19 Gemfile dependencies, 80 gems now installed.

備考

  • 別の端末で同じことをしてみたらそっちでは再現しなかったので、環境依存もありそうです。
  • 調査のために環境変数の設定を戻しても再現できなくなっていました。
  • そのため、根本的には別の原因があり、環境変数の設定を変えたことでたまたまそれが解消されてしまった可能性もありそうです。

まとめ

正直、何故これで解決できたのかまだ原因がはっきりと理屈で説明はできないのですが、あまり Windows での事例も見当たらなかったのでもし誰かがここを見かけた際に参考にしてもらえればと思って記事に残しました。
今後、もし何か新しいことがわかりましたらこの記事に追記、もしくは新しい記事に書いてこの記事へのリンクを貼るようにします。

ちなみに

エラーメッセージで検索した際にヒットしたのは rbenv の事例が多かったです。そもそも Windows で Rails の開発をしている人があまり多くないんでしょうね。Mac欲しい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0