LoginSignup
112
76

More than 1 year has passed since last update.

rbenv | global と local と .ruby-version の微妙な関係

Last updated at Posted at 2016-02-03

$ rbenv global x.x.x

システム全体で使う ruby のバージョンを指定する。
だが実は、 ~/.rbenv/version ファイルを書き出すだけのコマンド。

$ rbenv global 2.2.0 # => ~/.rbenv/version に 2.2.0 と書き出される

なので他の方法で ~/.rbenv/version を作ったり、削除したりしても。ruby バージョンが変わる。

$ rbenv local x.x.x

プロジェクトごとに使う ruby のバージョンを指定する。
だが実は、カレントディレクトリに .ruby-version ファイルを書き出すだけのコマンド。

$ rbenv global 2.3.0 # => ./.ruby-version に 2.3.0 と書き出される

なので他の方法で .ruby-version を作ったり、削除したりしても。ruby バージョンが変わる。

rbenv の挙動

先に述べたとおり、rbenv global / rbenv local はファイルを作るだけだ。
実際には rbenv の挙動が ruby のバージョンを決めている。

順序

rbenv は、まずカレントディレクトリの .ruby-version を見る。あればそれを使う。

もし無ければ、ひとつ上のディレクトリの .ruby-version を見る。あればそれを使う。
これをホームディレクトリ ~/ にたどりつくまで繰り返す。

ホームディレクトリまで辿っても .ruby-version がなければ、 ~/rbenv/version を見る。あればそれを使う。

つまり、ホームディレクトリに .ruby-version を作ってしまうと、global はどこからも参照されなくなる。

環境

  • rbenv 0.4.0
  • Mac OS X Yosemite

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

メンター受付

112
76
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
112
76