MAGAZINE
ルーターマガジン
Rubyプログラミング環境構築(rbenv, Bundler編) (Mac/Linux)
お初にお目にかかります、学生エンジニアのIshikawaです。
今回はRubyのプログラミング開発環境を構築する際によく用いられる、
- rbenv
- Bundler
について書いていきたいと思います。
目次
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で開発をはじめようと思っている方にとって、この記事が少しでも参考になれば幸いです。
それでは。
CONTACT
お問い合わせ・ご依頼はこちらから