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