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

  • 24
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

前回 ”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/