環境構築で Homebrew から Devbox に乗り換えた話¶
これまで Homebrew を使って環境構築をしていた。環境構築が完了するまで 20 分以上かかっていたがDevboxに乗り換えたら、数分で環境構築できるようになった。
Devbox とは¶
Devbox は、分離された開発環境を構築するためのツール。次のような特徴がある。
- Docker や Nix Language を使うことなく環境構築可能
- プロジェクトごとに環境を分離でき、開発マシン全体で使う環境も構築できる
- 設定ファイルを Git 管理することで共有・バックアップ・同期が容易
- 豊富なパッケージをサポート
- サービスのオーケストレーション
- cache を使った高速な環境構築
Homebrew からの乗り換え¶
Homebrew をメインの環境構築ツールとして使っていたが、環境構築に時間がかかっていた。環境構築を効率化するために Devbox を含めて次のツールを検討した。
- Devbox
- installer
- gh-install
- dra
- install-release
- bin
- manba
- eget
- whalebrew
- spack
- pixi
- nix
- Flox
- meta-package-manager
- nara
Homebrew から移行を考えた理由は、環境構築に時間がかかることだった。そのため、ソースコードを一からビルドして環境構築する方法はなるべく避けるようにした。pre-built binary をインストールできれば、環境構築が速くなると考え、調査を進めたが対応するパッケージが少なく、メインとして使うのは難しいと判断した。nix は豊富なパッケージをサポートしているが、使いこなすための学習コストが高いと感じた。whalebrew は Docker イメージを使ってパッケージをインストールするが、Mac で Docker を使うのは一工夫必要なので、これも選択肢から外した。
このような背景から次の理由で Devbox を選択した。
- cache を使って高速なインストール
- 豊富なパッケージ
- シンプルで利用にあたっての学習コストが低い
- OS への依存が少なく、いろいろな環境で使える
- プロジェクトごとに環境を分離でき、開発マシン全体で使う環境も構築できる
Devbox の使い方¶
次のコマンドで Devbox をインストールする。
global の環境構築に関するコマンドは次の通り。devbox global add jq
のようにパッケージを追加することで、環境構築できる。
設定ファイルを GitHub に push することで、他のデバイスでも同じ環境を再現できる。私の設定は次のコマンドで保存・共有できる。
この記事執筆時点で 60 個くらいのパッケージ(参考)をインストールしているが、環境構築にかかる時間は数分程度に短縮された。
プロジェクト個別に環境構築できる点も気に入っており、プロジェクトごとに異なるバージョンのパッケージを使うこともできるし、何かツールをサクッと試すときにも便利。
まとめ¶
Homebrew を使っている頃は環境構築に 20 分以上かかっていたが、Devbox に乗り換えたことで数分で完了するようになった。Devbox はシンプルで使いやすく、設定の共有もできる。開発マシン全体とプロジェクトごとに環境を分離できる点も便利で、気になるツールを試すときにも使いやすい。