bundlerでgem管理を行う

1 min read読了の目安(約1400字

環境

  • ruby 3.0.0
  • bundler 2.2.3

依存関係管理ツールのインストール

Rubyのパッケージ依存関係管理ツールbundlerをインストールする。

$ gem install bundler

プロジェクトにGemfile生成

まず、自身のプロジェクトルートに移動する。

$ cd [project_root_dir_path]

そして、以下のコマンドを実行し、Gemfileを生成する。

$ bundle init

この段階では、まだ何もGem(Rubyにおけるパッケージのこと)がない。

$ bundle list
Resolving dependencies...
No gems in the Gemfile

プロジェクトの設定

プロジェクト配下にGemをインストールできるよう、以下の設定を追加する。
以下のコマンドは、プロジェクトルートで実行する。

$ bundle config set --local path 'vendor/bundle'

Gemを追加

プロジェクトに新しいGemをインストールする。
以下では、faye-websocketというGemをインストールしている。
これにより、GemfileにもそのGemが記録される。

$ bundle add faye-websocket

Gemがインストールされたことを確認する。

$ bundle list
Gems included by the bundle:
  * eventmachine (1.2.7)
  * faye-websocket (0.11.0)
  * websocket-driver (0.7.3)
  * websocket-extensions (0.1.5)
Use `bundle info` to print more detailed information about a gem

Gemの実体は、以下のディレクトリで確認できる。

$ ls -l vendor/bundle/ruby/3.0.0/gems

Gemを削除

不要なGemを削除する。

$ bundle remove faye-websocket

この段階で、Gemfileからは記述が消える。

Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

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

# gem "rails"
$ bundle list
No gems in the Gemfile

さらに、不要となったGemの実体をディレクトリから削除できる。

$ bundle clean
Removing eventmachine (1.2.7)
Removing faye-websocket (0.11.0)
Removing websocket-driver (0.7.3)
Removing websocket-extensions (0.1.5)