brew bundleで新しいMacの環境をワンコマンド復元!Brewfileの作り方と使い方
🙌 結論から
brew bundle は、インストール済みの Homebrew パッケージを Brewfile という1つのファイルにまとめて、別のMacでもコマンド1つで再現できる機能です。
新しいMacへの移行作業で、以前使っていたCLIツールやアプリを1つずつ思い出しながらインストールし直すのは正直かなり面倒でした。
Brewfile を作ってからは brew bundle を打つだけで、いつもの開発環境がほぼそのまま戻ってきます!
これは本当に助かりました(^o^)/
「あのCLI、名前なんだったっけ」と検索する時間がまるごと消える感覚は、一度体験すると手放せません。
👀 brew bundle とはどんな機能か
brew bundle は、Homebrew に標準で組み込まれているコマンドで、brew install してきたパッケージやアプリの一覧を Brewfile というテキストファイルに書き出したり、そこから一括インストールしたりできます。
対象は CLI ツール(formula)だけでなく、--cask でインストールする GUI アプリ、Mac App Store のアプリ(mas 経由)まで含められるのがポイントです。
新しいMacのセットアップだけでなく、チームで開発環境を揃えたいときにも使えるんですよね(・∀・)
「このプロジェクト、何のツールが必要だったっけ?」というのを毎回思い出す必要がなくなります。
💡 Brewfile の作り方と使い方
まずは今インストールされているパッケージから Brewfile を書き出します。
brew bundle dump --file=~/Brewfile
中身はこんな感じのシンプルなテキストです。
tap "homebrew/bundle"
brew "git"
brew "node"
brew "gh"
cask "visual-studio-code"
cask "docker"
このファイルをそのまま Dotfiles リポジトリに含めて Git 管理しておくと、変更履歴も追えて安心です。
新しいMacや別の環境で復元するときは、このコマンド1つで完了します。
brew bundle --file=~/Brewfile
すでにインストール済みのものはスキップされるので、既存の環境に対して定期的に実行しても壊れる心配はありません(^^)
✨ 実際に使って感じたこと
一番ありがたかったのは、会社の別マシンでもまったく同じCLIツール構成をすぐ用意できたことです。
普段は git gh node pnpm mise あたりを常用しているのですが、以前はこれを毎回手作業でインストールしていて、抜け漏れがよくありました。
Brewfile を使うようになってからは、そもそも「何を入れたか忘れる」という問題自体が起きなくなったのが大きいです!
brew bundle cleanup を使うと、Brewfile に書かれていないパッケージを洗い出してくれるので、不要になったツールの掃除にも便利でした。
正直、最初は「そこまでやる必要あるかな」と思っていたんですが、使い始めたらもう手放せません(´・ω・`)
🔧 mas やCIと組み合わせてさらに便利にする
慣れてきたところで、Homebrew公式ドキュメントを読み直して他にも使える機能がないか調べてみました。
まずさりげなく助かったのが brew bundle check です。
Brewfile に書いたものがすべてインストール済みかどうかだけを確認できるコマンドで、実際にインストール処理を走らせずにチェックできます。
brew bundle check --file=~/Brewfile
新しいマシンで「もう終わってるはずだけど、念のため」を確認するときにちょうどいいです。
次に、Mac App Store のアプリを mas 経由で Brewfile に含める書き方も試してみました。
mas "Slack", id: 803453959
mas 自体も brew install mas で入るので、CLIツール・GUIアプリ・App Storeアプリを1ファイルに全部まとめられるのが分かってから、もう迷わずBrewfileに追記するようになりました。
App Storeのアプリはproduct idが必要になりますが、mas search アプリ名 で調べられます。
私の場合はまだ試せていないのですが、BrewfileをそのままGitHub ActionsのCIでセットアップ用途に流用する運用も調べていて見つけました。
開発用コンテナやCIランナーの初期化スクリプトに brew bundle --file=Brewfile を1行足すだけで、ローカルと同じツール構成をCI側でも再現できるようです。
チームのオンボーディング手順にBrewfileを組み込んでおけば、「READMEの手順通りにやったのに環境が微妙に違う」問題を減らせそうだと感じています🤔
👍 こういう人におすすめ
- 新しいMacのセットアップを何度も経験している人
- 会社と自宅で複数台のMacを使い分けている人
- チームで開発環境の差異に困ったことがある人
- Dotfiles をすでに Git 管理している人
複数のMacを行き来する働き方をしている人には、かなり刺さると思います(`・ω・´)
パパ系Webエンジニア〜愛用ガジェット一覧 🛍️
Macとあわせて使っている周辺機器を楽天ROOMにまとめています ✨ 在宅Macデスクの参考にどうぞ 🙌
🎉 まとめ
brew bundle は、Homebrew のパッケージ構成を Brewfile 1枚にまとめて、コマンド1つで復元できる機能です。
新しいMacへの移行や、複数マシンでの環境統一にかなり便利で、導入してから環境構築の手間がぐっと減りました!
まだ Brewfile を作っていない人は、brew bundle dump から試してみてください(^^)
※ Homebrewのコマンドやオプションは更新で変わることがあります。最新情報はHomebrew公式ドキュメントをご確認ください👀