お初にお目にかかります、学生エンジニアのIshikawaです。

今回はRubyのプログラミング開発環境を構築する際によく用いられる、

  • rbenv
  • Bundler

について書いていきたいと思います。

目次

  1. rbenvとは
  2. rbenvのインストール方法
  3. rbenvでrubyのバージョン管理
  4. Bundlerとは
  5. Bundlerのインストール方法
  6. BundlerでGemのバージョン管理

1. rbenvとは

rbenvは複数のRubyのバージョンを切り替えて使うことのできる、便利なツールです。 プロジェクトによって異なるバージョンのRubyを使うときに、rbenvを使うことでプロジェクト毎にRubyのバージョンを切り替えて使うことができます。

2. rbenvのインストール方法

Githubからクローンします。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
# ~/.rbenv(ホームディレクトリ直下のrebenvディレクトリ)にclone

rbenvの他にruby-buildもインストールしておきます。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# rebenvディレクトリ直下のplugin/ruby-buildディレクトリ にcloneします。

これはrbenvのプラグインで、rbenvにRubyをインストールするためのコマンドを提供します。

次に設定ファイル(~/.bash_profile )の設定をします。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
#環境変数 $PATH に ~/.rbenv/bin を追加
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# ターミナル起動時に“rbenv init”を実行 

Macでは上記の他にHomebrewを使って、簡単にインストールすることができます。

$ brew install rbenv ruby-build

以下のコマンドを実行してrbenvが正しくインストールされたか確認してください。

$ rbenv
rbenv 1.1.1
Usage: rbenv......

上記ではバージョン1.1.1のrbenvがインストールされたことが確認できます。

3. rbenvでRubyのバージョン管理

ここではrbenvを実際に用いてRubyのバージョンを管理する方法を書いていきます。

$ rbenv install -l
# 導入可能なバージョン一覧を表示
$ rbenv install 2.5.0
# install の後に導入したいバージョンをいれる
$ rbenv versions
# 切り替え可能なバージョン一覧を表示

プロジェクト毎にRubyのバージョンを変更するには、バージョンを変更したいプロジェクトのディレクトリに移動して、以下のコマンドを実行します。

$ rbenv local 2.5.0
# そのディレクトリだけにRubyのバージョン(ここでは2.5.0)を反映させる
$ rbenv version
# 反映されたか確認

ここまでがrbenvの使い方でした。続いて、Gem管理ツール「Bundler」の説明です。

4. Bundlerとは

BundlerとはGem(サードパーティー製のRubyライブラリ)同士の互換性を保ちながら、Gemを管理してくれるツールです。複数人、複数環境で開発をする際、非常に便利です。

5. Bundlerのインストール方法

Bundler自体もGemなので以下のようにインストールします。

$ rbenv exec gem install bundler

rbenv exec gem~でrbenvでインストールしたバージョンのRubyのGemを実行することを示しています。

6. BundlerでGemのバージョン管理

Bundlerをインストールしたら、使いたいGemをGemfileに追記しましょう。

Gemfileに追記したGemをインストールするときは、以下のコマンドを実行しましょう。

$ bundle install --path .bundle

ここで–pathオプションをつけるのを忘れないようにしましょう

というのも、このオプションをつけないで実行すると、同一バージョンのRubyグローバルでインストールされてしまうため、同一バージョンのRubyを使った異なるプロジェクトにまでGemがインストールされてしまいます。そうなってしまった場合、インストールしたGem同士の互換性がないと、エラーが起こりプログラムが正常に動作しない原因になってしまいます。そのためbundle installを実行する際–pathオプションがついているか、しっかりと確認してください。

Gemを使ってコマンド実行する際は以下のように実行しましょう。

$ bundle exec (実行したいコマンド)

bundle exec~はBundlerでインストールされた(現在いるプロジェクト内の)Gemを使ってコマンドを実行します。そのためbundle execを抜いてコマンドを実行すると、そのシステム全体で共通のGemを使って実行してしまうので注意してください。

おわりに

いかがだったでしょうか。

Ruby開発環境でこの二つのツールは多くの人が使っています。これからRubyで開発をはじめようと思っている方にとって、この記事が少しでも参考になれば幸いです。

それでは。