Help us understand the problem. What is going on with this article?

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/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした