Edited at

bundle updateまとめ


本記事について

Railsの開発でよく使うbundle updateについて調べてみたのでまとめます。


目次

・bundlerとは

・bundle installとbundle updateの違い

・bundle updateのオプション紹介


bundlerとは

プロダクト内部のgemを管理するためのgemです。

gemたちをまとめてくれる役割をします。これがあることで、bundle updatebundle installができるようになります。


bundle installとbundle updateの違い

こちらの記事にかなり詳しく書かれていました。

上の記事とほとんど同じことを言いますが、bundle installはGemfile.lockをまず見た上で、gemの更新やインストールを行います。bundle updateはGemfileをもとにgemの更新やインストールを行います。


bundle updateのオプション紹介


bundle update --all

Gemfileに指定されているすべてのgemを更新します。


bundle update --group=name, -g=name

指定されたグループのgenだけを更新します。

たとえば、bundle update --group developmentを使うとdevelopmentグループ内のすべてのgemを更新できます。

bundle update rails --group testによって、testグループ内のすべてのgemを更新することもできます。


bundle update --source=name

たとえばhttp://github.com/rails/のようなものを呼び出すときに使います。

bundle update --source railsによって、

gem "rails", :git => "http://github.com/rails/rails.git"

のようにgemを書き換えます。


bundle update --local

リモートでgemを取得せずにgemのキャッシュを使います。


bundle update --ruby

ロックされているバージョンのRubyを現在のバージョンのRubyに更新します。


bundle update --bundler

ロックされたバージョンのbundlerを、呼び出されたbundlerのバージョンへ更新します。


bundle update --full-index

rubygemsの最近のインデックスを、APIのエンドポイントの代わりに使用します。


bundle update --jobs=number

並行して実行するジョブの数を指定できます。デフォルトは1ですが、bundle update --jobs=10のようにすると処理が早くなります。


bundle update --retry=number

失敗したネットワークリクエスト、またはGitへのリクエストを再試行する回数を指定します。


bundle update --quiet

警告とエラーのみを出力します。○○をやっています・・・といったような表示は出なくなります。


bundle update --force

すべてのgemを強制的にダウンロードします。 --redownloadはこのオプションのエイリアスなので、どちらを使っても構いません。


bundle update --patch

次のパッチバージョンへの更新だけを優先します。


bundle update --minor

次のマイナーバージョンへの更新のみを優先します。


bundle update --major

次のメジャーバージョンへの更新のみを優先します。


bundle update --strict

gemが最新のものを過ぎて更新されるのを許可しないようにします。


bundle update --conservative

他のgemのアップデートを抑制することができます。

bundle update --conservative railsとするとrails以外のgemのupdateをしないようにします。

沢山あってまとめるのが大変でしたが、バージョンアップなどでお世話になるコマンドもいくつかありそうでした。