Bundlerでgem管理を設定ファイル化して管理を楽に


Bundlerとは何か

これまで gem install sinatraなどのようなコマンドを利用してgemをインストールしていました。ただ、この後DBを使うなどすると、必要とするgemファイルはsinatrasinatra-reloader以外にもどんどん増えていきます。

利用するgemが増えてくるとgem install xxxをたくさんしないとシステムが動かせなくなってしまいます。どのgemが必要か確認するのは作った人以外がやるのはかなり大変です。そこでBundlerの出番です!必要なgemを設定ファイル(Gemfile)としてまとめて、管理をしやすくすることができます。

サービスを作った人でなくとも設定ファイルを確認すればどのgemが入っているかをすぐに確認できます。また、bundle installコマンドを打つだけで同じgemを一括でインストールすることもできます。便利な仕組みですね。

自分でこのような仕組みを作るのは大変なので、既に多くの方が利用しているBundlerの仕組みを利用します。そしてBundlerの作者の決めた作法に従って準備を行います。

gemやBundlerについてもっとよく知りたい方は、講義形式で解説している こちら をチェックしてみてください。

動画の流れ

情報を調べて使い方を会得する

Bundlerを導入する

  • gem install bundlerでBundlerをインストールします。
  • bundle init でBundlerを使う際の雛形を作成します。
  • 作成されたGemfileというファイルの中身を確認すると、既にいくつかの記述がなされているはずです。

Gemfile

# A sample Gemfile
source "https://rubygems.org"

# gem "rails" (記述の仕方の例が載っている)
  • Sinatraを使う際に必要なgemをGemfile内に書いていきます。

Gemfile

source 'http://rubygems.org'

gem 'sinatra'
gem 'sinatra-reloader'
  • Sinatraの使い方が載っているBundler本家のページに従って、app.rbも書き換えていきます。この記述をすると、Gemfileに記述したgemの内容を呼び出すのにrequire 'xxx'と書く必要が無くなります。

app.rb

require 'rubygems'
require 'bundler'

Bundler.require
  • bundle installGemfile内に書いたgemを--path vendor/bundleというオプションをつけてインストールしていきます。
    • このオプションをつけることでvendor/bundle内にgemがインストールされます。
  • bundle exec ruby app.rb -p $PORT -o $IPで起動します
    • 今までのSinatraの起動コマンドruby app.rb -p $PORT -o $IPの頭にbundle execをつけます。この方法で、Bundlerで導入したgemを利用して起動できます。
  • 動作確認します。

今回のコードはこちらで確認することができます。

前の章へ戻る

次の章へ進む


コメントを残す