the KodeLab

macOS Homebrew 入門ガイド|Install, Search & Manage Packages

4,772 文字 12 分で読めます
macOS Homebrew 入門ガイド|Install, Search & Manage Packages

Homebrew は macOS で最もよく使われるパッケージマネージャーです。一行のコマンドでソフトウェアのインストール・アップデート・削除ができ、dmg を手動でダウンロードしたり面倒な設定をしたりする必要はありません。システムサービスの管理もできるので、アプリを macOS の起動時に自動で立ち上げることも可能です。ChatGPT、Gemini などの LLM が出力してくれるコマンド例と組み合わせれば、iMac、Mac mini、MacBook のソフトウェア管理がぐっと楽になります。

Homebrew をインストールする

Homebrew はコマンドでインストールします。Mac のターミナルを開いて以下のコマンドを入力すれば自動でインストールされます。Homebrew 公式サイト https://brew.sh から「Install Homebrew」のコマンドをコピーしても構いません。

# Homebrew をインストール
/bin/bash -c \
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール後、brew --version でバージョン情報が表示されればインストール成功です。

Homebrew の基本操作

パッケージをインストール (Formulae)

Homebrew は主に「コマンドラインツール」や「ライブラリ」のインストールに使います。例えば OpenJDK をインストールする場合:

# 最新版 Java をインストール
brew install openjdk

# Java 17 をインストール
brew install openjdk@17

# Java 21 をインストール
brew install openjdk@21

# 再インストール
brew reinstall openjdk

# 複数パッケージを一度にインストール
brew install openjdk gradle

ソフトウェアやパッケージはインストール後にそのまま使えるものもあれば、自分で PATH に追加する必要があるものもあります。例えば openjdk@17 をインストールすると、以下のようなメッセージが表示されます:

echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

これは openjdk@17keg-only とマークされているためです。同じソフトウェアに複数のバージョンが共存できる場合、Homebrew はインストールとアップデートは面倒を見てくれますが、java と入力したときにそのバージョンで起動させたい場合は、自分で PATH に追加する必要があります。上の echo ... >> ~/.zshrc をターミナルにそのままコピーして Enter を押せば OK です。そうしない場合は、フルパスで起動することになります。

インストール時のメッセージを再表示する

インストール成功時には関連する使い方の説明が表示されますが、もう一度見たい場合は brew info コマンドを使います。例えば brew info openjdk です。

先ほど触れたように、一部のソフトウェアやパッケージは keg-only とマークされていて、インストール後にターミナルから名前だけで起動できません。このときに使うのが brew link コマンドです。MySQL Client を例にすると:

# MySQL Client をインストール
brew install mysql-client

インストール後に mysql を実行すると zsh: command not found: mysql と表示され、フルパス /opt/homebrew/opt/mysql-client/bin/mysql を指定しないと起動できません。

PATH に手動で追加する代わりに、brew link コマンドで自動的に PATH に繋ぐことができます。

# 通常の link — keg-only には効かない
brew link mysql-client

# 強制 link — 他に mysql がないことが確認できていれば OK
brew link --force mysql-client

# link 後はターミナルから mysql をそのまま使える
mysql -h example.com -u root -p

# リンク解除
brew unlink mysql-client

同じ方法で openjdk@17openjdk@21 などのバージョンを指定して、ターミナルで java を入力したときのデフォルトバージョンにすることもできます。

GUI アプリをインストール (Casks)

Cask は Homebrew の拡張機能で、macOS の GUI アプリケーション(例えば Chrome、Visual Studio Code、Slack)をインストールするためのものです。.dmg.pkg ファイルを自動でダウンロードし、/Applications にインストールしてくれます。

# Chrome をインストール
brew install --cask google-chrome

# Visual Studio Code をインストール
brew install --cask visual-studio-code

インストールしたアプリは Launchpad と Finder のアプリケーションフォルダに表示され、そのまま起動できます。

パッケージを検索する

ターミナルから直接コマンドで検索できます。例えば docker を検索する場合:

# docker を検索
brew search docker

Formulae と Casks の両方の検索結果が表示されます。ブラウザから https://brew.sh で直接検索したり、Google で brew chrome のように検索することもできます。通常、検索結果のトップには https://formulae.brew.sh/cask/google-chrome が表示されます。

インストール済みパッケージの管理

パッケージを更新する

Homebrew はインストールと削除だけでなく、更新もできます。

# Homebrew 本体を更新し、アップデートのあるソフトウェアをチェック
brew update

# アップデートのあるパッケージを一覧
brew outdated

# 全部アップデート
brew upgrade

# 特定のパッケージをアップデート — 例えば Java 17 は最新ではないがセキュリティアップデートがある
brew upgrade openjdk@17

# 複数のパッケージを一度にアップデート
brew upgrade openjdk gradle

インストール済み一覧とアンインストール

Homebrew でインストールしたパッケージを確認し、不要なものは brew uninstall で削除できます。

# インストール済みの Formulae と Casks を一覧
brew list

# アンインストール
brew uninstall <パッケージ>

# アンインストール例
brew uninstall openjdk
brew uninstall mysql-client
brew uninstall google-chrome

ヘルスチェック

Homebrew には brew doctor コマンドがあり、インストール環境のヘルスチェックを実行して潜在的な問題を報告してくれます。パッケージのインストールに失敗したときや、macOS をアップデートした後などに、PATH の設定ミス、古いパッケージの残骸、権限エラーなどをチェックするのに便利です。

# ヘルスチェックを実行
brew doctor

古いデータをクリーンアップする

新しいバージョンをインストールしても、古いバージョンはすぐには削除されず、Cellar に保存されたままになります。これは、新しいバージョンに問題があった場合に古いバージョンに戻せるようにするためです。また、パッケージをインストールするとき、Homebrew はまず圧縮ファイル(tarball)をダウンロードして ~/Library/Caches/Homebrew/ に保存しています。

# 全パッケージの古いバージョンとキャッシュをクリーンアップ
brew cleanup

# 特定のパッケージだけクリーンアップ
brew cleanup <パッケージ>

# ドライラン(実際には削除せず、削除対象を表示するだけ)
brew cleanup -n

# どれくらい空き容量が作れるかチェック
brew cleanup -s

たまに以下のようなメッセージが出ることがあります:

Warning: Skipping ffmpeg: most recent version 8.0_1 not installed

これは、自分の環境の ffmpeg が最新版に更新されていないため、古いバージョンが削除できない状態です。brew outdated を実行すれば、現在のバージョンと最新版の差分が見えます:

ffmpeg (7.1.1_3) < 8.0_1

brew upgradebrew upgrade ffmpeg で更新すれば警告は出なくなります。ちなみに、ffmpeg のようなパッケージには多くの依存パッケージがあり、インストールやアップデート時には Homebrew が関連パッケージをまとめて処理してくれるのでとても便利です。ただし、ffmpeg を削除しても依存パッケージは自動では削除されないので、brew autoremove を使って、もう依存されていないパッケージを削除する必要があります。

その他のよく使うコマンド

# デフォルトのプレフィックスパスを取得
brew --prefix

# 特定のパッケージのパスを取得
brew --prefix <パッケージ>
brew --prefix python  # 例

# アップデートのあるパッケージを確認
brew outdated

# もう依存されていないパッケージを自動削除
brew autoremove

システムサービス

Homebrew はインストールしたパッケージをシステムサービスとして登録できます。こうすると macOS を起動するたびに自動的に立ち上がります。Windows の「サービス」や、Linux の systemd に近い感覚です。

Ollama(ローカルで LLM を実行するためのもの)を例にすると、インストール後はデフォルトではターミナルで ollama serve を手動で実行してバックグラウンドを起動する必要があります。ですがシステムサービスとして登録すれば、起動時に自動的に立ち上がり、手動操作が不要になります。

# サービスを開始
brew services start ollama

# サービスを停止
brew services stop ollama

# サービスを再起動
brew services restart ollama

# サービスの状態一覧
brew services list