Bundler

参考:

Bundler: The best way to manage a Ruby application’s gems [Official]

bundler/bundler: Manage your Ruby application’s gem dependencies – GitHub

ドキュメント

参考:

Docs | Bundler [Official]

Documentation for bundler | RubyDoc.info

Bundler 日本語ドキュメント | Ruby STUDIO

使い方

参考:

bundler を使った RubyGems の管理について | 30歳からのプログラミング

Ruby の gem をプロジェクト毎に Bundler で管理する | fugafuga.write

Bundler を使って gem をインストールする | ローイングファンの日記

Bundler めも – GitHub Gist

bundle 備忘 – Qiita

bundler、bundle exec について – Qiita

Bundler を使った Gem パッケージの管理 | Ruby on Rails 入門

Bundler 1.15 の全コマンド | TechRacho

Bundler の使い方 – Qiita

bundler の使い方 (Gem 管理) | TASK NOTES

The Ultimate Guide to Ruby Gems, Gemfiles & Bundler | RubyGuides

How to manage application dependencies with Bundler | Bundler [Official]

How to use Bundler with Rails | Bundler [Official]

How to use Bundler with Ruby | Bundler [Official]

How to use Bundler in a single-file Ruby script | Bundler [Official]

導入

参考:

bundler で gem をプロジェクトごとに管理する | DevelopersIO

意外とよくわかっていない bundler について | Enjoy IT Life

bundler を使い始めた時に詰まったので調べた。| それマグで!

概要

参考:

Bundler の使い方 | Kazunori Kamiya

bundler での運用方法 – Qiita

bundle install と bundle update、gemfile と gemfile.lock のつながりを解いてみた | 会社を辞めて在宅ワーカーになったパパの記録

まとめ

参考:

Bundler で gem を実用的に扱うためのまとめ – Qiita

Bundler 1.15 の全コマンド | TechRacho

gem コマンド

参考:

Gem コマンドの使い方まとめ | TASK NOTES

bundle コマンド

参考:

bundle | Bundler [Official]

bundle install

参考:

bundle install | Bundler 日本語ドキュメント (Ruby STUDIO)

bundle install | Bundler [Official]

bundle-install – Install the dependencies specified in your Gemfile | Ubuntu Manpage

Rails Bundle Install and Gemfile | DZone Web Dev

bundle install --path

参考:

rails で bundle install する時にインストールパスを指定 – Qiita

bundle install で毎回 --path=vendor/bundle するのが面倒なのをどうにかする – Qiita

bundle install するときに vendor/bundle を省略する方法 – Qiita

bundle install するときになぜ vendor/bundle に入れるのか | teratail

Why Bundle Install is installing gems in vendor/bundle? – Stack Overflow

bundle install --deployment

参考:

bundler での運用方法 – Qiita

Rails の bundle install --deployment とは何なのか | TechRacho

bundle_frozen とか bundle_without | Nikushi’s blog

BUNDLED WITH で Gemfile.lock が更新されてしまう件 – Qiita

bundler の疑問点とか色々メモ | かせいさんとこ

How to deploy bundled applications | Bundler [Official]

Whats the difference between bundle install –deployment and bundle pack – Stack Overflow

bundle install --frozen

Gemfile.lock を更新せずにインストールする。オプションは config に記憶される。

$ bundle install --frozen

config から BUNDLE_FROZEN を削除する。

$ bundle config --delete frozen

参考:

BUNDLED WITH で Gemfile.lock が更新されてしまう件 – Qiita

bundle_frozen とか bundle_without | Nikushi’s blog

bundle install --clean

必要なパッケージをインストール後に bundle clean を自動的に実行する。オプションは config に記憶される。

参考:

bundle install には --clean を指定する (特に Circle CI では) | Born Too Late

--jobs オプション

インストールする際に並列に実行するワーカー数を指定する。

$ bundle install --jobs 4

参考:

Install gems in parallel (faster) – Stack Overflow

-V / --verbose オプション

インストールの詳細ログを出力する。

$ bundle install -V

bundle pristine コマンド

Bundler でインストールした gem を初期状態に戻す。(ローカルキャッシュから再インストールされる。Git で管理されている gem は指定したコミットがチェックアウトされる。)

$ bundle pristine

参考:

bundle pristine | Bundler [Official]

Running `bundle pristine` on a git source gem doesn’t rebuild the native extension · Issue #6294 · bundler/bundler – GitHub

ネイティブ拡張をリビルドする

参考:

native extension 入りの gem をリビルドする – Qiita

Rebuild native extensions | makandra dev

Rebuild bundler gems with native extensions | Coderwall

gem install does not rebuild all instances of a gem – Server Fault

How to rebuild all my Ruby gems? – Super User

ネイティブ拡張のビルドオプションを指定する

参考:

Bundler でビルドオプションを指定する – Qiita

gem を再インストールする

全ての gem を強制的に再インストールする。

$ bundle install --force

vendor/bundle を削除してやり直す。

$ rm -rf vendor/bundle
$ bundle install

vendor/bundleGemfile.lock を削除してやり直す。

$ rm -rf vendor/bundle
$ rm Gemfile.lock
$ bundle install

参考:

How do I force Bundler to reinstall all of my gems? – Stack Overflow

How to reinstall a gem using bundler – Stack Overflow

プレリリースバージョンの gem を使う

参考:

Unable to resolve dependencies when using prerelease gem · Issue #2938 · bundler/bundler – GitHub

bundle list

$ bundle list

参考:

bundle list | Bundler [Official]

bundle show

バンドルされている gem の一覧を表示する。

$ bundle show

バンドルされている gem のパスを一覧表示する。

$ bundle show --paths

指定した gem がインストールされているパスを表示する。

$ bundle show rails

参考:

bundle show | Bundler [Official]

bundle exec

参考:

bundle exec | Bundler 日本語ドキュメント (Ruby STUDIO)

bundle update

参考:

bundle update | Bundler [Official]

bundle install と bundle update の違い

  • bundle installGemfile.lock で gem のバージョンが指定されていればそのバージョンを使い続ける。Gemfile.lock に存在しない gem は新たにインストールされる。
  • bundle updateGemfile 指定の範囲内でリモートも含めてなるべく新しいバージョンの gem に解決する。 ( Gemfile.lock で gem のバージョンが指定されていても可能な限り新しいバージョンに更新する。)

指定した gem のみを更新する

参考:

bundle update で特定の gem のみ更新する – Qiita

How to update a single gem conservatively | makandra dev

Update just one gem with bundler – Stack Overflow

bundle lock

参考:

Updating Gemfile.lock without installing gems – Stack Overflow

bundle lock | Bundler [Official]

bundle check

参考:

bundle check | Bundler [Official]

How to re-sync Gemfile.lock on changes to Gemfile – Stack Overflow

gem を削除する

参考:

Gemfile でインストールした Gem を削除する – Qiita

gem をクリーンにする。- Qiita

あえて言うほどではないけれども Gem を一括削除する方法 | TECHSCORE BLOG

GitHub からコミット/ブランチ/タグを指定して gem を追加する

参考:

Gemfile での gem 指定色々 – Qiita

Gemfile での git オプション利用のリスク | koicの日記

How to install gems from git repositories | Bundler [Official]

How to get a specific “commit” of a gem from github? – Stack Overflow

Gemfile.lock

参考:

bundler と Gemfile.lock の取り扱い | DesignAssembler

Gemfile.lock アップデートガイド – Qiita

Gem の更新 | Bundler 日本語ドキュメント (Ruby STUDIO)

初心者向け Gemfile と Gemfile.lock の違い | Enjoy IT Life

Gemfile.lock が更新されるタイミングはいつなのか? · Issue #18 · yochiyochirb/meetups – GitHub

Gemfile and Gemfile.lock | Austin Songer

Should Gemfile.lock be included in .gitignore? – Stack Overflow

環境毎に異なる Gemfile.lock が生成される問題

参考:

Gemfile.lock …できない – Qiita

Gemfile.lock Platform Conflicts – GitHub Gist

Gemfile.lock が git merge した時にコンフリクトする

参考:

Rails で良くコンフリクトするファイルの対処方 – Qiita

Auto resolve git conflicts in Gemfile.lock · Issue #6020 · bundler/bundler – GitHub

Bundler.setup

Bundler でインストールした gem を require できるように $LOAD_PATH を設定する。

参考:

Bundler.setup | Bundler 日本語ドキュメント (Ruby STUDIO)

Bundler.setup vs. Bundler.require | Anti-pattern

How to use Bundler with Ruby | Bundler [Official]

Bundler.require

Bundler でインストールした gem を環境名 (:default や :development など) を指定して require する。

参考:

bundler の gem を ruby スクリプト実行時にロードする方法 | 小さな星がほらひとつ

Gemfile の書き方を見直した | r7kamura

実行環境と Bundler.require | AnyType

Does the order of gems in your Gemfile make a difference? – Stack Overflow

Rails における gem の読み込み

参考:

rails を起動すると gem はどのように読み込まれてんのか | onody_onody’s blog

Bundler で入れた rails で rails new を行う

参考:

Ruby on Rails の環境構築と bundler について | TASK NOTES

bundle package

通常通り bundle install を実行する。

$ bundle install

必要な gem を全て vendor/cache にキャッシュする。

$ bundle package --all

vendor/cache からインストールする。

$ bundle install --local

参考:

bundle install をオフラインで実行するメモ – Qiita

Gem を bundler でダウンロードしローカルに保存、オフラインでインストールしたい | yukku++

bundle package | Bundler 日本語ドキュメント (Ruby STUDIO)

What is the simplest way to download a gem without installing rubygems? – Super User

gem をローカルにキャッシュする

参考:

Local gem cache to accelerate bundler | There’s enough for everyone

bundle config local.*

Gemfile を変更せずに設定でオーバーライドして、ローカルのディレクトリから gem を使う。

$ bundle config --local local.mygem path/to/mygem

参考:

Bundler で Gemfile を変更せずにローカルの :path の gem を使う – Qiita

ローカルで修正した gem のコードを bundle install する | My External Storage

How to specify local Ruby gems in your Gemfile | rossta.net

依存している gem のリストを取得する

指定した gem に依存している gem の一覧を取得する。

$ ruby -r bundler -e 'puts( \
    Bundler.locked_gems.specs.find_all do |gem| \
      gem.dependencies.any? { |dep| $*.include?(dep.name) } \
    end.map(&:name) \
  )' \
  activesupport

Gemfile で直接指定しているものに限定する。

$ ruby -r bundler -e 'puts( \
    Bundler.locked_gems.specs.find_all do |gem| \
      gem.dependencies.any? { |dep| $*.include?(dep.name) } \
    end.map(&:name).select do |name| \
      Bundler.locked_gems.dependencies.keys.include?(name) \
    end \
  )' \
  activesupport

bundle exec コマンドの役割

参考:

bundler コードリーディング exec 編 | freedom-man

Docker で Gemfile.lock を扱う

参考:

Rails on Docker: Quickly Create or Update Your Gemfile.lock | Chris Blunt

--path 指定のインストールでシステム gem は考慮されない

参考:

Bundler should use already installed Gems, that satisfy Gemfile · Issue #1964 · bundler/bundler – GitHub

Ruby 2.6.1 で require “bundler/setup” がエラーになる

Ruby 2.6.1 で Bundler を使った際に、require "bundler/setup" がエラーを起こす。

require "bundler/setup"
# => You must use Bundler 2 or greater with this lockfile.

原因:

デフォルト gem として入っている Bundler 1.17.2 の gemspec で s.files が不足している。

対処法:

rbenv を使っている場合にパッチを適用して上書きインストールする。

curl -sSL https://bugs.ruby-lang.org/attachments/download/7631/15582-bundler-gemspec.patch | rbenv install -f -p 2.6.1

もしくは、デフォルト gem を更新する。

$ gem update bundler --system

参考:

Bug #15586: Requiring `bundler/setup` gets wrong version | Ruby Issue Tracking System

Bundler 2.0 の変更点 – Qiita

サンプルコードでわかる!Ruby 2.6 の主な新機能と変更点 – Qiita

bundle-bungler

ユーザーのホームディレクトリにインストールした gem をコピーしてインストール時間を短縮する。

参考:

chrismo/bundle-bungler – GitHub

Bundler::Console

参考:

kddeisz/bundler-console: A bundler plugin that starts a console session with your gem dependencies – GitHub

ExtendedBundler::Errors

参考:

jules2689/extended_bundler-errors: A `bundler` plugin that makes gem installation errors more actionable, educative, and all around easier to understand – GitHub

git-bundle

Git コマンドを、Bundler でインストールした gem のリポジトリでも同期して自動的に実行する。

参考:

EPI-USE-Labs/git-bundle: Simplifies working with gems from git repositories in combination with local overrides – GitHub

How to handle Gemfile.lock with local gem repositories? – Stack Overflow

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です