環境
- 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を効率的に更新するための強力なツールと言える。