bundler - izudon/izudon.github.io GitHub Wiki

bundler とは・・・

数ある gem を、依存関係をバージョンを含めて考慮して解決し、
インストールしてくださるありがたい神のようなツール。

  • bundle init 雛形 Gemgile の作成。
  • bundle install 必要な gem 一式をインストール。
  • bundle update 必要な gem 一式を再構築(バージョンアップをフォローする場合など)。

使い方

  1. Gemfile というファイルをカレンドディレクトリに作る。
    • $ bundler init と打てば雛形ができる。
  2. Gemfile を編集する。
    • 単純に欲しい gem を書くだけ。
    • 欲しいバージョンがあるのならばそれも。
  3. インストール先を明示して bundler コマンドを打つ。
    • $ bundler install --path .bundle/ といった具合。
    • 依存関係をバージョンを含めて考慮して解決し、
      数々の gem がインストールされるはず。

雛形 Gemfile :

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# gem "rails"

コマンドの打ち方

  • ローカルに gem をインストールした場合、当然その bin/ には
    パスは通っていないので、コマンドとして打てない。
    • .bundle/ruby/2.5.0/bin/jekyll などとガンバって打ってみても、
      依存先の gem にパスが通ってないのでエラーになる。
  • そんなときは bundle exec を加えて打てば良い。
    $ bundle exec jekyll new my-awesome-site といった具合。
    • こうすると bundler が、先の gem インストールディレクトリだけ
      gem path として指定した上でコマンドを実行してくれるので大助かり。
    • システム全体としてインストールしてある gem を一部参照してしまったり
      ということなく、バージョンを含めて解決済みの依存関係のもと、
      ゴキゲンにコマンドが働いてくれる。

参考