Bundlerを用いたgemライブラリ管理

Bundlerを用いたgemライブラリ管理

アプリごとによって同じgemでも違ったバージョンを利用したい場合もある。そこでsystemのgemはbundler 一つだけにして、必要なものはプロジェクトフォルダ配下のvendor/bundleに格納し、bundle execで呼び出すのが管理しやすい。

Bundlerのインストール

デフォルトのgemを確認

$ sudo gem list

環境全体のgemにbundlerをインストール

$ sudo rbenv exec gem install bundler

プロジェクトごとにGemfileで管理

プロジェクトフォルダのトップへ移動

$ cd ~/ruby/slack_notification

以下に下記コマンドでGemfileを作る

$ bundle init

gemfileを編集する。

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

# gem "rails"
gem 'slack-api'

bundlerを利用してインストール。pathオプションを付けることで指定したディレクトリにインストールする事が可能。

$ bundle install --path vendor/bundle

.bundle/configにパスが設定されるため、2回目以降はpathオプションを付けなくても指定されたディレクトリにインストールする事ができる。

--
BUNDLE_PATH: "vendor/bundle"

システムに間違えてインストールしたgem を一気にアンインストールする場合は下記コマンドを実行

$ gem uninstall -I -a -x --user-install --force
$ rbenv exec gem install bundler