ユーザ用ツール

サイト用ツール


rbenv

rbenv

rbenvはRubyの複数バージョンを管理するツール。

rbenv は ~/.rbenv/shims をPATHに追加して ruby コマンドを ~/.rbenv/shims/ruby に置き換える。この ruby コマンドの実体はシェルスクリプトで rbenv で選択したバージョンの ruby を呼び出している。

Rubyのインストール

rbenv自体にはRubyをインストール機能がない。自前でビルドしても良いが ruby-build というプラグインを入れるのが普通。

ruby-buildをインストールするとinstall/uninstallサブコマンドが使えるようになる。

インストール可能なRubyのバージョン一覧

$ rbenv install --list 

2.0.0-p0をインストール

$ rbenv install 2.0.0-p0

MacOSXの場合XCodeに付属のgcc(llvm-gcc)ではRubyをビルドできない事がある。homebrewでgccをインストールしてビルド時に指定すると良い

$ brew install gcc48
$ CC=/usr/local/bin/gcc-4.8 rbenv install 1.8.7-p249

X11/Xlib.hが無いと言われる場合はCPPFLAGSでヘッダファイルの場所を指定

$ CC=/usr/local/bin/gcc-4.8 CPPFLAGS=I/usr/X11/include rbenv install 1.8.7-p249

2.0.0-p0ではopensslを独自にビルドするのでopensslを別途インストール不要。ただしbrewでインストールしたものを指定したい場合は、

$ RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p0

Rubyのバージョンを指定する方法

いくつかバージョンを指定する方法がある。

shell 指定

shell設定を行うと、現在のシェルセッションで使うRubyを指定できる。この設定は最も優先度が高い。

$ rbenv shell 2.0.0-p2

この指定は、Redmine等のRubyで書かれたアプリを本番環境でデーモンとして起動するために起動スクリプト中で使うと良いだろう。

この設定は環境変数RBENV_VERSIONに保存される。逆にRBENV_VERSION環境変数をsystemdのserviceファイル等で設定することで、サービスでrbenvを使うことができる

local 指定

local設定を行うと、この設定を行ったディレクトリ以下にいるとき指定したバージョンのRubyが使用されるようになる。優先度は2番目。

$ rbenv local 1.9.3-p194
$ ruby -v 
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]

この指定はRubyアプリ開発時に使用するRubyのバージョンを固定するために使う。プロジェクトのトップディレクトリで設定しよう。

この設定は .rbenv-version というファイルに記録される。プロジェクトでRubyのバージョンを統一するために、このファイルをGit等のバージョン管理システムにコミットしてもよい。

global 指定

local の設定が見つからない場合は、global の設定が使われる。優先度は最も低い。

$ rbenv global 2.0.0-p0 

普段使いたいRubyのバージョンを指定すると良い。

global 設定は ~/.rbenv/version に記録される(RBENV_ROOT環境変数が設定されている場合は $RBENV_ROOR/version)

現在の指定を確認

rbenv versionコマンドを実行

$ rbenv version
2.1.0 (set by /Users/nullpon/hoge/fuga/piyo/.ruby-version)

“(set by カレントディレクトリ/.ruby-version)” の場合はlocalで指定されている

$ rbenv version
2.1.0 (set by /Users/nullpon/.rbenv/version)

“(set by ホームディレクトリ/.rbenv/version)” の場合はglobalで指定されている

$ rbenv version
2.0.0-p0 (set by RBENV_VERSION environment variable)

“RBENV_VERSION environment variable” はshellで指定されている。shell指定はターミナル環境で使うべきではない。

インストール済みRubyを確認する

rbenv versions コマンドを実行

$ rbenv versions
  system
  1.8.7-p249
  1.8.7-p371
  1.9.3-p392
  2.0.0-p0
* 2.1.0 (set by /Users/nullpon/.rbenv/version)

最新版のRubyがインストールできない場合

新しいrubyリリースされた後、その最新版がインストール対象にない場合はrbenvを更新する。

$ cd ~/.rbenv
$ git pull
$ cd ~/.rbenv/plugins/ruby-build
$ git pull

rbenvをhomebrew等のパッケージ管理ツールでインストールした場合は、そちらで更新する。

rbenv.txt · 最終更新: 2022/07/22 15:34 by nullpon