[Ruby] rbenv が効かないと思ったら、$HOME/.rbenv/ が後ろに回っていた

当たり前ですが、あれってなったのでまとめておきます。

Contents

状況

% gem install middleman
% gem list middleman
*** LOCAL GEMS ***
middleman (3.2.2)
middleman-core (3.2.2)
middleman-sprockets (3.2.0)

コマンドが使えない。

% middleman -v
zsh: command not found: middleman
% which middleman
middleman not found
% gem which middleman
/usr/local/Cellar/ruby/2.1.0/lib/ruby/gems/2.1.0/gems/middleman-3.2.2/lib/middleman.rb

ruby のバージョンを切り替えてみるが変わっていない。

% rbenv versions
  system
  1.9.3-p448
  2.0.0-p247
* 2.1.0 (set by /Users/****/.rbenv/version)
% ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
% rbenv global 2.0.0-p247
% rbenv versions
  system
  1.9.3-p448
* 2.0.0-p247 (set by /Users/****/.rbenv/version)
  2.1.0
% rbenv rehash
% ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]

なにかむちゃくちゃな状態に。

% rbenv global
2.0.0-p247
% ruby --version
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
% which ruby
/usr/local/bin/ruby
% rbenv which ruby
/Users/****/.rbenv/versions/2.0.0-p247/bin/ruby

対応

path を確認する

$HOME/.rbenv/shims より先に /usr/local/bin が呼ばれている。

% echo $path
/Users/****/bin /usr/local/bin /Users/****/.nodebrew/current/bin /usr/local/heroku/bin /Users/****/.rbenv/shims /Users/****/.rbenv/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin

この時ですね。

.zshrc を修正する

.zshrc を修正して、読み込み直します。

% subl .zshrc
% source ~/.zshrc
% echo $path
/Users/****/bin /Users/****/.nodebrew/current/bin /usr/local/heroku/bin /Users/****/.rbenv/shims /Users/****/.rbenv/bin /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin

正しい状態に直りました。

% rbenv global 2.0.0-p247
% ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.5.0]
% which ruby
/Users/****/.rbenv/shims/ruby
% rbenv which ruby
/Users/****/.rbenv/versions/2.0.0-p247/bin/ruby

gem の再インストール

% gem uninstall middleman
% gem install middleman
% middleman version
Middleman 3.2.2
% which middleman
/Users/****/.rbenv/shims/middleman
% rbenv which middleman
/Users/****/.rbenv/versions/2.1.0/bin/middleman
% gem which middleman
/Users/****/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/middleman-3.2.2/lib/middleman.rb