rbenvでRubyのバージョンを管理する

/

rbenv

rbenvは複数のバージョンのRubyを切り替えて使用するためのツールです。
Linuxの各ディストリビューションのパッケージ管理システムからもRubyをダウンロードする事が出来ますが用意されているRubyのバージョンが古い場合も多いので、rbenvを使用することによって最新のバージョンのRubyを利用出来るようになります。

また環境全体で複数のバージョンを切り替えるだけでなくローカルのディレクトリ毎に使用するバージョンを設定することも出来るのでプロジェクト毎にRubyのバージョンを切り替えるという便利な使い方も可能になります。

この記事ではubuntu14.04にインストールしていきます。

rbenv/github

rbenvのインストール

rbenvはgithubからソースコードを入手してビルドしていきます。
Gitをインストールしてcloneをしてみる/koltatt

ホームディレクトリにrbenvのディレクトリを作成し、そこにソースコードをクローンします。

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

続いてプラグインであるruby-buildもインストールします。

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

最後にpathを通します。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

shellの設定を変更したのでshellを再度読み込みます。

$ source ~/.bash_profile

無事インストール出来たか確認してみましょう。

$ rbenv --version
rbenv 1.0.0-21-g9fdce5d

Rubyのインストール

rbenvのインストールが完了したので、好きなバージョンのRubyのをインストールしていきます。

インストール出来るRubyのバージョンを調べる

$ rbenv install --list

...
2.3.0
2.3.1
2.4.0-dev
...

rbenv install –listでインストール出来るRubyのバージョンの一覧が表示されます。
今回はバージョン2.3.1をインストールしてみます。

$ rbenv install 2.3.1

インストールしたバージョンの一覧

$ rbenv versions

インストールしたRubyの有効化

・環境全体のRubyのバージョン設定

globalコマンドによりデフォルトのバージョンを設定します。

$ rbenv global 2.3.1
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

無事にrbenvによりインストールしたRubyが利用出来るようになりました。

・ディレクトリ毎にバージョンを設定する

上記のglobalコマンドだと環境全体でのRubyのバージョンが設定されますがディレクトリを指定してRubyのバージョンを設定する場合にはlocalコマンドを使用します。

まずはもう一つ別のバージョンのRubyをインストールします。

$ rbenv install 2.2.5

プロジェクト用のディレクトリを作ってそこでローカルでバージョンを設定していきます。

$ mkdir ruby_project
$ cd ruby_project
$ rbenv local 2.2.5
$ ruby -v
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux]

このディレクトリの中では2.2.5のバージョンが設定されているのがわかります。

$ cd ../
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

一度ディレクトリから出てRubyのバージョンを調べるとグローバルに指定したバージョンが表示されます。
これでローカルにバージョンを設定出来ることが確認出来ました。

最後に

RubyはRuby on Railsを使ってwebアプリを作る際に使われることが多いので実行環境やプロジェクト参加者のそれぞれの参加者の間でバージョン違いによる不具合を回避するために、こういったバージョン管理システムが使われる事が多いようです。

また公式サイトでも最新のRubyを使うためにサードパーティのツールの使用を推奨しているようなのでRubyを使うならバージョン管理システムの導入を検討してみるといいと思います。