tmux + rbenv の環境で指定した Ruby が使われない件
以前、tmux + rbenv の環境で、指定したバージョンの Ruby が何故か使われなくなってしまった件がありました。
tmux + tmuxinator + rbenv の環境で RBENV_VERSION が勝手に設定されてしまう件
http://d.hatena.ne.jp/akishin999/20130303/1362308566
この時は上に書いた通り、tmux 起動時に RBENV_VERSION が設定されないようにした事で回避できたと思っていました。
が、開発環境で久しぶりに別のバージョンの Ruby に切り替えてみたところ、またもや global な Ruby しか使われない問題が発生している事が発覚。
調べてみるとどうやら下記の事象のようです。
tmuxとrbenvを併用する場合は.rbenv/shimsのパスも通してないとバージョン指定できない - 僕の車輪の再発明
http://kazuph.hateblo.jp/entry/2013/05/06/200059
The master branch of rbenv breaks inside of tmux. Issue #369 sstephenson/rbenv
https://github.com/sstephenson/rbenv/issues/369
環境変数 PATH を確認してみると、「$HOME/.rbenv/shims」より前に global な Ruby のパスが設定されてしまっています。
どうやらこれが原因で上手く切り替わってくれないようです。
公式ドキュメントの方にも以下のように書いてありました。
rbenv works by inserting a directory of shims at the front of your PATH:
https://github.com/sstephenson/rbenv#understanding-shims
試しに以下のように export してみると、その後はちゃんと指定した Ruby に切り替わるようになりました。
% export PATH=$HOME/.rbenv/shims:$PATH
というわけで、自分の環境では tmuxinator を使っていたので、tmuxinator 用の YAML ファイルで以下のよう設定してみました。
project_name: devel project_root: ~/ pre:_ - export PATH=$HOME/.rbenv/shims:$PATH ・ ・ ・
一旦 tmux を終了し、その後 mux コマンドで tmux を起動すれば OK です。
今度こそ、tmux + rbenv が問題なく使えるようになったはず・・・。