rbenvのよく使うコマンドまとめ

スポンサーリンク

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種類のバージョン指定方法がありましたが優先順位は次の通りです。

  1. 環境変数 RBENV_VERSION
  2. ローカル rbenv local <version>
  3. グローバル 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 しましょう。