Edited at

rbenvとは?(rbenvを利用したRubyのインストール)

More than 3 years have passed since last update.

前回 ”RVMとは?” という内容を記録しましたが、今回はrbenvについて説明させていただきます。


rbenvとは?

Simple Ruby Version Management: rbenv

rbenv lets you easily switch between multiple versions of Ruby. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

もっとsimpleなRVMという意味か、、?

とりあえずどんな特徴があるか見てみます。


rbenvの特徴

○ Rubyの本体に付属していない

○ Ruby on Railsの開発者が入る37signalsが作った。

○ rvmをよりシンプルにしたRuby自体のバージョン切り替え

○ rvmより動作が軽い

○ Do 1 ユーザー権限ごとにバージョンを切り替え(システム全体には影響しない)

○ Do 2 プロゼックトごとに合わせた、Rubyバージョンのサポート

○ Do 3 そのため開発する際, Rubyバージョンに合わせた環境変数を用意する。


rvmとrbenvの違い

○ shellのロード

代わりにrbenvのアプローチは$PATHに対しディレクトリを追加します。

○ shell commandの上書き

cdコマンドを上書きする事は、危険なエラーが発生しやすいです。

○ 設定ウァイルを持つこと

rbenvでは使用したいRubyのバージョン以外は設定する必要はありません

○ Rubyのインストール

rbenvでは自分自身でRubyをコンパイル&インストールするか、またはruby-buildを使って自動インストールができます。

○ gemsetsの管理

RVMと違いgemは管理しません。 Bundlerは依存関係を管理するための良い方法です。 まだ利用していなければrbenv-gamesプラグインをインストールできます。

○ プロゼックトを切り替えた時のエラー警告表示

rbenvでは各プロゼックトごとにバージョン名を読み取りますので簡単です。

また、railsの公式ウェブサイトではrbenvを利用してRubyをインストールする事をオススメしています。

(railsを作ったDHHもrbenvを使用している。。。という話も。。ありますね。。)


rbenvを利用したRubyのインストール

Linux環境でRubyのバージョン管理をサポートするrbenvをインストールしてみましょう

$ git clone git://github.com/sstephenson/rbenv.git .rbenv

コマンドプロンプトでrbenvを実行できるようにshell環境変数を修正します。

.bashrcファイルを読めるようにエディターを開けて .bash_profileに次のように追加します。

[ -f "$HOME/.profile" ] && source "$HOME/.profile"

[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

.bashrcの内容は次のように作成します。rbenvが保存されているディレクトリをRBENV_ROOT環境変数にrbenv実行ファイルが入っているディレクトリをPATHに追加します。

shellを実行するたびにrbenv init - コマンドを実行します。

export RBENV_ROOT="${HOME}/.rbenv"

if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
fi

Rubyをインストールするためにはrbenvのプラグインruby-buildが必要です。

.rbenv/plugins ディレクトリを作ってgithubからruby-buildをダウンロードします。

$ mkdir -p ~/.rbenv/plugins

$ cd ~/.rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git

install オプションを利用してRubyをインストールしてみましょう。

2.3.1を基準でインストールしました。

$ rbenv install 2.3.1

rehashオプションは新しい環境を再設定するオプションで新しくRubyをインストールしたりgemをインストールした後で実行しなきゃいけないです。

$ rbenv rehash

global オプションはシステムで該当Rubyを使うために使用します。

$ rbenv global 2.0.0-p451

欲しかったバージョンがちゃんとインストールされたか確認しましょう。

$ ruby -v

インストールが終わったらgemを管理するた目にbundlerをインストールします。

新しい環境を再設定するためrehashを忘れないでください。

$ gem install bundler

$ rbenv rehash


ETC

rbenv-gem-rehashをインストールすると、毎回 rbenv rehashコマンドを実行しなくていいです。


参考ページ

https://rorlab.gitbooks.io/railsguidebook/content/contents/rbenv.html

http://mukaer.com/archives/2012/03/09/rubyrvmgemrbenv/