supabase start で代替可能)| 項目 | パターンA:Homebrew | パターンB:mise |
|---|---|---|
| 所要時間 | ⏱️ 15〜30分 | ⏱️ 5〜10分 |
| コマンド数 | 多い | 少ない |
| バージョン管理 | pyenv / nvm で別途管理 | mise 一本でOK |
| チーム共有 | 手順書が必要 | .mise.toml を共有するだけ |
| 情報・トラブル対応 | ◎ 情報豊富 | △ 比較的新しい |
| おすすめ用途 | 学習・OSS貢献 | 実務・新規プロジェクト |
どちらのパターンでも最初に必須。gitやコンパイラなどのCLIツール群が入る。 (フルのXcode IDEは不要)
xcode-select --install
# 確認
xcode-select -p
# → /Library/Developer/CommandLineTools
⏱️ 所要時間:5〜10分
💡 ポイント: すでに入っている場合は
already installedと表示されてスキップできる
macOSの非公式パッケージマネージャー。apt(Ubuntu)やwinget(Windows)に相当。
# インストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Apple Silicon(M1〜)はPATHを通す
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
# 確認
brew --version
⏱️ 所要時間:5〜10分
💡 ポイント: Apple Silicon は
/opt/homebrew/、Intel Mac は/usr/local/にインストールされる。PATH設定を忘れるとbrew: command not foundになる
プロジェクトごとにバージョンを切り替えるため、pyenv経由が定番。
# pyenv をインストール
brew install pyenv
# PATHを通す
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# Python 3.12をインストール
pyenv install 3.12.3
# グローバルのデフォルトに設定
pyenv global 3.12.3
# 確認
python --version
# → Python 3.12.3
⏱️ 所要時間:5〜10分(ソースからビルドするため時間がかかる)
💡 ポイント:
pyenv globalはMac全体、pyenv localは現在のディレクトリ以下に適用される。localを実行すると.python-versionファイルが生成される
# nvm をインストール
brew install nvm
# PATHを通す
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"' >> ~/.zshrc
source ~/.zshrc
# LTS版をインストール
nvm install --lts
nvm alias default node
# 確認
node --version # → v22.x.x
npm --version # → 10.x.x
⏱️ 所要時間:3〜5分
💡 ポイント:
.nvmrcファイルにバージョンを書いておくとチームで統一できる。nvm useで自動適用される
方法①:brew経由(CLI管理)
brew install postgresql@16
# PATHを通す
echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# 起動
brew services start postgresql@16
# 確認・接続
psql --version
psql postgres
方法②:Postgres.app(GUI管理・お手軽)
1. https://postgresapp.com からダウンロード
2. アプリを起動 → メニューバーに象のアイコンが出る
3. 「Initialize」ボタンを押すだけ
⏱️ 所要時間:3〜5分
💡 ポイント: Next.js + Supabase構成なら
supabase start(要Docker)でPostgreSQLを含む環境が丸ごと立ち上がるため、直接インストール不要な場合が多い
| ツール | mise | 代替手段 |
|---|---|---|
| Python | ✅ | — |
| Node.js | ✅ | — |
| Ruby など言語ランタイム全般 | ✅ | — |
| PostgreSQL | ❌ | Homebrew or Docker |
| Redis / MySQL | ❌ | Homebrew or Docker |
mise は言語ランタイムのバージョン管理に特化。サービス(デーモン)系はHomebrew管理が定番
# 方法①:Homebrew経由(推奨)
brew install mise
# 方法②:Homebrewなし(curl一発)
curl https://mise.run | sh
# PATHを通す(どちらの方法でも共通)
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc
# 確認
mise --version
⏱️ 所要時間:1〜2分
💡 ポイント: pyenv・nvmそれぞれにPATH設定が必要だったパターンAと違い、
mise activate zshの1行で全部まとめて有効になる
# Python
mise install python@3.12.3
mise use --global python@3.12.3
# Node
mise install node@lts
mise use --global node@lts
# 確認
mise list
# → python 3.12.3
# → node 22.0.0
python --version # → Python 3.12.3
node --version # → v22.0.0
⏱️ 所要時間:3〜5分
💡 ポイント:
--globalはMac全体、--localは現在のディレクトリ以下に適用(pyenvと同じ概念)
.mise.toml でチーム共有プロジェクトルートに置いてGit管理するだけで、チーム全員が mise install 一発で環境を再現できる。
# .mise.toml
[tools]
python = "3.12.3"
node = "22.0.0"
[env]
NODE_ENV = "development"
# チームメンバーがやること(これだけ)
git clone {repo}
cd {repo}
mise install
# → .mise.toml を読んで自動でPython・Nodeが入る
💡 ポイント:
.nvmrcとpyenv localの役割が.mise.toml一枚に統合される。新メンバーのオンボーディングが劇的に楽になる
Xcode CLT → 必須(共通)
Homebrew → PostgreSQL用に入れておくと無難
mise → Python / Node の管理
supabase start → PostgreSQL含む環境をDockerで起動(直接インストール不要)
# 最終的な開発スタートまでの流れ
xcode-select --install
curl https://mise.run | sh # or brew install mise
mise install # .mise.tomlから自動インストール
supabase start # ローカルSupabase起動
npm run dev # Next.js起動
| ミス | 改善策 |
|---|---|
| Xcode CLTを入れずにHomebrewをインストールしようとする | 必ず xcode-select --install を先に実行する |
| Apple SiliconでHomebrewのPATHを通し忘れる | eval "$(/opt/homebrew/bin/brew shellenv)" を .zshrc に追記 |
| システムPythonを直接使う | pyenv or mise 経由でインストールする |
| PostgreSQLをインストールしたのにサービス起動を忘れる | brew services start postgresql@16 を忘れずに |
| Next.js + Supabaseなのに直接PostgreSQLを入れようとする | supabase start で代替できないか先に検討する |
パターンBのmiseはHomebrewが完全に不要になるわけではない。PostgreSQLなどのサービス系ツールはHomebrewが必要。ただしNext.js + Supabase構成なら
supabase startでDockerがPostgreSQLを立ち上げてくれるので、直接インストールしなくて済む場合が多い。
miseは言語ランタイム(Python・Node)の管理に特化していて、サービス(デーモン)系の管理は対象外という棲み分けを理解しておくと混乱しない。