Ruby初学者なので、rbenvの基礎的な使用方法から自分用にまとめます。
基本的には公式リポジトリを見ながら書いていきます。
rbenvとは?
Rubyのバージョン管理を行ってくれるツール。
開発環境に複数バージョンのRubyをインストールし、切り替えることができます。
インストール・設定
以下、Macを前提で記載します。
# インストール(ruby-buildも入れておく)
$ brew install rbenv ruby-build
~/.bash_profile
に以下の内容を追記します。
eval "$(rbenv init -)"
# 変更内容を適用
$ source ~/.bash_profile
# インストール確認
$ rbenv -v
基本的な使い方
Rubyのインストールとバージョン切り替え
Rubyのバージョンを指定してインストールします。
# まずはインストール可能なバージョンを調べる
$ rbenv install -l
Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
...
# 記載時点では2.6.3が安定版のようなので、2.6.3を入れる
# ※[-dev]や[preview]と書いていない
$ rbenv install 2.6.3
# 私の環境ではエラーになりました。。。
BUILD FAILED (OS X 10.14.5 using ruby-build 20190423)
# オプションつけると通るらしい
$ RUBY_CONFIGURE_OPTS="--disable-dtrace" rbenv install 2.6.3
# インストールされているバージョン一覧
$ rbenv versions
2.6.3
# 使用するRubyのバージョン指定
$ rbenv global 2.6.3
上記の場合は全体で使用するRubyのバージョンを設定しますが、
任意のディレクトリ配下だけ別のバージョンを使用することもできます。
# 全体のバージョン
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
# 任意のフォルダに移動
$ cd hoge
# hogeの中だけ2.6.0(オプションは割愛)
$ rbenv install 2.6.0
$ rbenv local 2.6.0
# .rbenv-version が作成される
$ ls -a
. .. .ruby-version
$ ruby -v
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
その他機能
shell
コマンドラインで使用するRubyのバージョンを一時的に変更します。
# 現在のバージョン
$ rbenv versions
system
2.6.0
* 2.6.3 (set by /Users/iwakura/.rbenv/version)
$ rbenv shell 2.6.0
# 確認
$ rbenv versions
system
* 2.6.0 (set by RBENV_VERSION environment variable)
2.6.3
# 元に戻す
$ rbenv shell --unset
$ rbenv versions
system
2.6.0
* 2.6.3 (set by /Users/iwakura/.rbenv/version)
which
rbenv内にインストールされているコマンドのフルパスを表示します。
$ rbenv which gem
/Users/iwakura/.rbenv/versions/2.6.3/bin/gem
whence
引数に指定したコマンドがインストールされているバージョンを表示します。
# 現在2.6.3と2.6.0がインストールされている
# rackupは2.6.3にのみ存在
$ rbenv whence rackup
2.6.3
環境変数
rbenvで使用する環境変数について記載します。
名前 | デフォルト値 | 説明 |
---|---|---|
RBENV_VERSION | rbenv shellで使用するRubyのバージョンを設定 | |
RBENV_ROOT | ~/.rbenv | rbenvでインストールした各バージョンのファイル等が配置されるパスを指定 |
RBENV_DEBUG | デバック情報を出力するらしい(rbenvの挙動確認用?) | |
RBENV_HOOK_PATH | rbenv hooks用らしいけど何かよく分からない | |
RBENV_DIR | $PWD |
.ruby-version の検索先 |
まとめ
一部雑な記載になってしまいましたが、基本的なことは学べました。
今後Rubyを使用して仕事することになるので、言語仕様も含めてしっかり学びたいです。