akishin999の日記

調べた事などを書いて行きます。

tmux + tmuxinator + rbenv の環境で RBENV_VERSION が勝手に設定されてしまう件

tmux + tmuxinator + rbenv の環境で rbenv local を設定しても指定した Ruby が使われない、という現象が発生。
調べてみると環境変数 RBENV_VERSION が設定されているため、rbenv がそちらを見てしまう事が原因のようでした。

しかし RBENV_VERSION を設定した覚えもなく、.zshrc とかその辺のファイル見ても特に設定している様子もありません。
いつの間に設定されるようになってしまったのか・・・。

検索してみると tmuxinator の Issues に以下のような Issue がありました。

auto setting RBENV_VERSION · Issue #99 · aziz/tmuxinator
https://github.com/aziz/tmuxinator/issues/99

rbenv 側の問題?
とりえあず、上記に書いてあるとおり、~/.tmux.conf に以下のように追記して tmux のセッションを起動し直したところ、ちゃんと rbenv local で切り替わるようになりました。

set-environment -gu RBENV_VERSION

これで快適に rbenv が使えます。
よかったよかった。

2015.01 追記

その後 rbenv-gemset のバージョン指定が効かなくなったりもしていたので、結局以下のようにいろいろと追加しました。
いろいろ検索して適当に追記したので本当に全て必要かは未検証ですが、参考までに。

set-environment -gu RBENV_VERSION
set-environment -gu RBENV_DIR
set-environment -gu RBENV_GEMSET_ALREADY
set-environment -gu RBENV_HOOK_PATH
set-environment -gu RBENV_ROOT

参考

rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ
http://d.hatena.ne.jp/sugyan/20111128/1322420500

ruby - How to stop making tmux auto setting RBENV_VERSION - Stack Overflow
http://stackoverflow.com/questions/15002937/how-to-stop-making-tmux-auto-setting-rbenv-version