LoginSignup
11
10

More than 5 years have passed since last update.

tmux環境でrbenvによるバージョン変更が出来ない現象

Last updated at Posted at 2014-07-26

はじめに

みなさんこんにちは。
rbenvでバージョンを変更した後tmuxを使うと、バージョンが変更されてない(デフォルト状態?)現象が起こったので紹介します。

現象

bashでrbenvのバージョンを確認(ruby -v)すると以下のようになった。
※思い出しながらの投稿なので表示されているコードと実際のコードには若干間違いがあるかもしれないです

MacBook-Air:~ user $ ruby -v
ruby 2.0.0p247 

tmuxの環境下で同じコマンドを打つと以下のようになる。

MacBook-Air:~ user $ ruby -v
ruby 1.8.7 

rbenvでバージョン指定しているはずなのに、tmuxでは有効になっていませんでした。
更に、もとからrailsはインストール済みだったのでバージョンを確認すると、tmuxを利用しない場合は問題ないがtmux利用時はrailsコマンドがcommand not foundとなり効かなくなる。
railsが消えた...。

原因

rbenv versionsをすると以下のようになっていた。

MacBook-Air:~ user $ rbenv versions
system
  1.9.3-p327
* 2.0.0-p247 (set by RBENV_VERSION environment variable)

指定したバージョンの後ろに(set by RBENV_VERSION environment variable)となっているのがポイント。
環境変数RBENV_VERSIONが設定されてしまっているのが問題のようです。

参考URL:http://rikei-webmemo.hateblo.jp/entry/2014/01/29/134019

試しにtmuxを利用していない状態で環境変数RBENV_VERSIONを確認してみました。

MacBook-Air:~ user $ echo $RBENV_VERSION
ruby 2.0.0-p247

tmux利用時は以下のようでした。

MacBook-Air:~ user $ echo $RBENV_VERSION

参照出来てないってことなんですかね。

解決

以下のサイトを参考にさせて頂きました。ありがとうございます。

tmux+rbenvの環境で指定したRubyが使われない件
http://d.hatena.ne.jp/akishin999/20130627/1372284674

.bash_profileに以下のコードを、

export PATH=$HOME/.rbenv/shims:$PATH

.tmux_confに以下のコードを入力。

set-environment -gu RBENV_VERSION

これでもう一度バージョンを確認してみると

MacBook-Air:~ user $ rbenv versions
  system
  1.9.3-p327
* 2.0.0-p247 (set by /Users/user/.rbenv/version)

指定バージョンの後ろが(set by /Users/user/.rbenv/version)となっていて変更されているのがわかりますね。
これでtmux利用時も指定したバージョンを利用することができるようになりました。
また、railsコマンドがcommand not foundになっていた件も同時に解決しました。

おわりに

今回の記事は現象発生時にリアルタイムで更新出来なかったため、コードなどの表記は若干違う可能性もあります。
あと、環境変数とかいろいろいぢくってて途中わけわからなくなった作業もあったので、これ以外に無意識になんかやったかもしれないです…。
まぁご参考程度によろしくお願いします。

11
10
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
11
10