動かざることバグの如し

近づきたいよ 君の理想に

Rubyで特定の文字を含むライブラリを一括アップデート

環境

  • bundler 2系

やりたいこと

例えば「rubocop」を含む全ライブラリをbundle updateしたい。

  • rubocop、rubocop-rspec: ◯
  • puma: X

これを一発で実行したい

コマンド

bundle update $(bundle list | grep rubocop | awk '{print $2}')
  • bundle list:現在のプロジェクトでインストールされている全てのgemをリストアップする。
  • grep rubocop:そのリストからrubocopを含む行だけを抽出する。
  • awk '{print $2}':各行からgemの名前だけを取り出す。これは行の2番目のフィールド(スペースで区切られた部分)にある。
  • bundle update $(...):抽出したgemの名前を使ってbundle updateを実行する。これにより、指定したgemだけが更新される。

以上の手順により、rubocopを含む全てのライブラリを一度に更新することができる。これは、特定のgemだけを更新したいときに便利だ。

ただし、他のgemに影響を与えずに更新できるかどうかは、gemの依存関係による。依存関係が複雑な場合、予期しない問題が発生する可能性があるので注意が必要だ。それでも、このコマンドは一部のgemを効率的に更新するための強力なツールと言える。