[Ruby] rbenv global 2.3.0 でバージョンが切り替わらない

調査と対応。凡ミスの記録。

Contents

状況確認

公式をよく読む。

rbenv/rbenv: Groom your app’s Ruby environment

path

echo $path~/.rbenv/shims が先に存在する。

% echo $path
/Users/****/.rbenv/shims /Users/****/local/bin /usr/local/bin /usr/local/sbin /usr/sbin /sbin /usr/bin /bin /Users/****/.composer/vendor/bin /Users/****/local/lib/node_modules/bin

~/.rbenv/version

rbenv global コマンドの実行結果が ~/.rbenv/version ファイルに書き込まれている。

% more ~/.rbenv/version
2.3.0

~/.rbenv/versions

~/.rbenv/versions 以下に必要な ruby version がインストールされている。

% ls ~/.rbenv/versions
1.9.3-p551/ 2.2.4/      2.3.0/

Homebrew

Homebrew で rbenv と ruby-build がインストールされている。

% brew list |grep "rbenv\|ruby-build"
rbenv
rbenv-default-gems
ruby-build

プロファイルに eval "$(rbenv init -)" が追加されている。

eval "$(rbenv init -)"

原因と対応

正常にインストールされているが ~/.rbenv/version を見ていないことが分かった。
rbenv versions で確認。んっ!?

% rbenv versions
  system
  1.9.3-p551
* 2.2.4 (set by /Users/****/.ruby-version)
  2.3.0

ルートディレクトリ直下に .ruby-version が何故かある。。。

% more .ruby-version
2.2.4
% rm .ruby-version
remove .ruby-version? y

再確認。

% rbenv global 2.3.0
% rbenv versions
  system
  1.9.3-p551
  2.2.4
* 2.3.0 (set by /Users/****/.rbenv/version)

教訓: コマンドの出力結果は、きちんと確認しよう。