rbenvのコマンドでよく使うものをまとめました。その他のコマンドはあまり使われないと思いますが次の記事でまとめたいと思います。
インストール
rbenvのインストールについては以下参照。
【Mac】Ruby開発環境の準備+rbenvの使い方 - TASK NOTES
rbenvのヘルプ
$ rbenv $ rbenv -h $ rbenv --help $ rbenv help <command> # コマンドの詳細
rbenvのバージョン確認
$ rbenv -v $ rbenv --version
インストール ( rbenv install )
バージョンを指定してRubyをインストールするにはrbenv install <version>
を使用します。ですがその前にインストール可能なバージョンの一覧を確認です。
$ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 ... ...
補完機能があるので$ rbenv install [tab] [tab]
でも一覧を確認できます。tab キーを2回です。こっちの方が画面に収まって見易いですね。
$ rbenv install Display all 133 possibilities? (y or n) 1.8.6-p383 1.9.2-p180 1.9.3-p392 2.0.0-p451 2.1.2 jruby-1.6.8 jruby-1.7.2 mruby-1.0.0 rbx-2.2.6 1.8.6-p420 1.9.2-p290 1.9.3-p429 ...
それではバージョンを選んで実行します。
$ rbenv install 2.1.5 Downloading ruby-2.1.5.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/4305cc6ceb094df55210d83548dcbeb5117d74eea25196a9b14fa268d354b100 Installing ruby-2.1.5... Installed ruby-2.1.5 to /Users/xxxxxx/.rbenv/versions/2.1.5
また、インストール済みのバージョンを選択すると、インストールしていいか確認されますが、オプションに-f
を付けて実行すると無視してインストールが始まります。
$ rbenv install 2.1.5 rbenv: /Users/xxxxxx/.rbenv/versions/2.1.5 already exists continue with installation? (y/N) n $ rbenv install -f 2.1.5 Downloading ruby-2.1.5.tar.gz... ...
逆にオプションに-s
を付けた場合は、インストール済みの場合は確認無しでスルーしてくれます。
$ rbenv install -s 2.1.5
アンインストール ( rbenv uninstall )
バージョンを指定してアンインストールするにはrbenv uninstall <version>
を使用します。削除するかどうか確認がありますが、-f
オプションを付けた場合は問答無用で削除されます。
$ rbenv uninstall 2.1.5
Rubyのバージョン指定 ( rbenv global )
デフォルトで使うRubyのバージョンを指定するにはrbenv global <version>
を使用します。
$ rbenv global 2.0.0-p598 $ rbenv version 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version)
ディレクトリ別にバージョン指定 ( rbenv local )
環境毎にバージョンを分ける事もできます。適当なディレクトリを作成してrbenv local <version>
コマンドを実行してください。すると.ruby-version
というファイルが作成され、バージョンが変更されます。
$ mkdir hoge && cd hoge $ rbenv local 2.1.5 $ rbenv version 2.1.5 (set by /Users/xxxxxx/Documents/hoge/.ruby-version) $ ls -l .ruby-version -rw-r--r-- 1 xxxxxx staff 6 12 1 18:35 .ruby-version
この影響範囲はどこまでかというと.ruby-version
が作成されたディレクトリ以下が全て対象になります。ですので間違ってもホームディレクトリなんかでrbenv local
を実行しないようにしましょう。
上のディレクトリに移動してバージョンを確認するとデフォルトのバージョンに戻ります。
$ cd .. $ rbenv version 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version)
元に戻したいときは--unset
オプションをつけて実行してください。
$ rbenv version 2.1.5 (set by /Users/xxxxxx/Documents/hoge/.ruby-version) $ rbenv local --unset $ rbenv version 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version)
環境変数でバージョン指定 ( rbenv shell )
バージョンの指定方法は他にも環境変数RBENV_VERSION
が使えます。場所はどこでもいいので、rbenv shell <version>
コマンドを実行してください。
$ rbenv shell 2.1.5 $ echo $RBENV_VERSION 2.1.5 $ rbenv version 2.1.5 (set by RBENV_VERSION environment variable)
これは単純に環境変数をセットしているのと同じです。
$ export RBENV_VERSION=<version>
環境変数の指定を解除したい時は--unset
オプションをつけて実行してください。
$ rbenv shell --unset $ echo $RBENV_VERSION $ rbenv version 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version)
バージョンの優先順位
3種類のバージョン指定方法がありましたが優先順位は次の通りです。
- 環境変数
RBENV_VERSION
- ローカル
rbenv local <version>
- グローバル
rbenv global <version>
Rubyのバージョンを表示 ( rbenv version )
現在アクティブなRubyのバージョンを表示します。
$ rbenv version 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version)
表示されてる情報は次のファイルに保存されています。
$ cat ~/.rbenv/version 2.0.0-p598
普通にRubyのバージョンを確認しても同じです。
$ ruby -v ruby 2.0.0p598 (2014-11-13 revision 48408) [x86_64-darwin14.0.0]
インストール済みRuby一覧 ( rbenv versions )
インストール済みで利用可能なバージョン一覧を表示します。
$ rbenv versions system * 2.0.0-p598 (set by /Users/xxxxxx/.rbenv/version) 2.1.5
インストールしたgemを利用可能にする ( rbenv rehash )
追記:rbenv rehash
をしなくてもよくなりました。 Pull Request #638 · sstephenson/rbenv
実際に見た方が分かり易いと思うので、とりあえず rails を例としてインストールします。
$ gem install rails ... Installing ri documentation for rails-4.1.8 26 gems installed
インストールが完了すると指定しているバージョン以下の bin にコマンドが作成されます。
$ ls -l ~/.rbenv/versions/2.0.0-p598/bin/ ... -rwxr-xr-x 1 xxxxxx staff 4432 12 1 11:25 erb -rwxr-xr-x 1 xxxxxx staff 581 12 1 11:25 gem -rwxr-xr-x 1 xxxxxx staff 353 12 1 11:25 irb -rwxr-xr-x 1 xxxxxx staff 498 12 3 18:28 rails # インストールで作成された -rwxr-xr-x 1 xxxxxx staff 1355 12 1 11:25 rake -rwxr-xr-x 1 xxxxxx staff 973 12 1 11:25 rdoc -rwxr-xr-x 1 xxxxxx staff 223 12 1 11:25 ri -rwxr-xr-x 1 xxxxxx staff 2364440 12 1 11:22 ruby -rwxr-xr-x 1 xxxxxx staff 113 12 1 11:25 testrb ...
しかし、~/.rbenv/shims/
にはコマンドが作成されていません。
$ ls -l ~/.rbenv/shims/ -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 erb -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 gem -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 irb -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 rake -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 rdoc -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 ri -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 ruby -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 testrb
~/.rbenv/versions/*/bin
にはパスが通ってないのでこのままでは当然実行できないです。
$ rails -v Rails is not currently installed on this system. To get the latest version, simply type: $ sudo gem install rails You can then rerun your "rails" command.
そこで rehash を実行します。
$ rbenv rehash
すると~/.rbenv/shims/
にもコマンドが作成されます。
$ ls -l ~/.rbenv/shims/ ... -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 erb -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 gem -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 irb -rwxr-xr-x 8 xxxxxx staff 413 12 3 18:42 rackup -rwxr-xr-x 8 xxxxxx staff 413 12 3 18:42 rails # 作成された -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 rake -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 rdoc -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 ri -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 ruby -rwxr-xr-x 8 xxxxxx staff 413 12 1 10:32 testrb ...
実行できるようになりました。
$ rails -v Rails 4.1.8
gem をインストール・アンインストールしたら rbenv rehash しましょう。