Homebrew Cask 早見表:install/upgrade/uninstall/zap の使い分け一発理解
macOS で GUI アプリケーションを管理する際、Homebrew Cask は非常に便利なツールです。しかし、install、upgrade、uninstall、zap という 4 つのコマンドがあり、それぞれどのような場面で使うべきか迷ってしまうことはありませんか?
今回は、これらのコマンドの違いと使い分けを、早見表と具体例を交えて徹底解説します。この記事を読めば、Homebrew Cask のコマンドを自信を持って使い分けられるようになるでしょう。
Homebrew Cask コマンド早見表
各コマンドの特徴を表で整理しました。まずはこちらをご覧ください。
| # | コマンド | 用途 | アプリ本体 | 設定ファイル | キャッシュ | 使用シーン |
|---|---|---|---|---|---|---|
| 1 | install | 新規インストール | インストール | - | ダウンロード保存 | 新しいアプリを導入するとき |
| 2 | upgrade | バージョンアップ | 更新 | 保持 | 新版をダウンロード | アプリを最新版にしたいとき |
| 3 | uninstall | アンインストール | 削除 | 保持 | 保持 | アプリだけ削除、設定は残したいとき |
| 4 | zap | 完全削除 | 削除 | 削除 | 削除 | アプリも設定も全て消したいとき |
この表を見れば、どのコマンドがどのファイルに影響するかが一目瞭然ですね。それでは、各コマンドの詳細を見ていきましょう。
背景
Homebrew Cask とは
Homebrew は本来、コマンドラインツールやライブラリをインストールするためのパッケージマネージャーです。一方、Homebrew Cask はその拡張機能として、Google Chrome や Visual Studio Code などの GUI アプリケーションを管理できるようにしたものなのです。
従来の macOS では、アプリケーションをインストールする際に以下のような手順が必要でした。
mermaidflowchart TD
start["アプリが必要"] --> browser["ブラウザで検索"]
browser --> download["公式サイトから.dmgダウンロード"]
download --> mount["ディスクイメージをマウント"]
mount --> drag["Applicationsフォルダへドラッグ"]
drag --> eject["ディスクイメージを取り出し"]
eject --> cleanup["ダウンロードファイルを削除"]
cleanup --> done["完了"]
上記の図が示すように、手動でのインストール作業は多くのステップを踏む必要がありました。アプリの更新時も同様の手順を繰り返さなければなりません。
Homebrew Cask の登場
Homebrew Cask を使えば、これらの作業が 1 行のコマンドで完結します。
bashbrew install --cask google-chrome
このコマンドを実行するだけで、ダウンロードからインストールまでが自動的に行われるのです。開発者にとって、この効率化は大きな恩恵と言えるでしょう。
アプリケーション管理の全体像
Homebrew Cask でアプリケーションを管理する際、以下のようなライフサイクルを理解しておく必要があります。
mermaidstateDiagram-v2
[*] --> NotInstalled: 初期状態
NotInstalled --> Installed: install
Installed --> Updated: upgrade
Updated --> Installed: さらにupgrade
Installed --> Uninstalled: uninstall
Updated --> Uninstalled: uninstall
Uninstalled --> [*]: zap(完全削除)
Installed --> [*]: uninstall → zap
Updated --> [*]: uninstall → zap
このライフサイクルを把握することで、各コマンドがどの段階で使われるべきかが明確になります。
課題
コマンドの使い分けが不明確
Homebrew Cask を使い始めた方が最初に直面する課題は、4 つのコマンドの使い分けです。特に以下のような疑問が生まれやすいでしょう。
よくある疑問
- アプリを削除したい場合、
uninstallとzapのどちらを使うべきか upgradeを実行すると設定ファイルはどうなるのか- アプリを再インストールしたいとき、どの順序でコマンドを実行すべきか
- 完全に削除したはずなのに設定が残っているのはなぜか
これらの疑問は、各コマンドが どのファイルに対して操作を行うか を理解していないために生じます。
ファイルの種類と保存場所
Homebrew Cask で管理されるアプリケーションに関連するファイルは、主に以下の 3 種類に分類されます。
| # | ファイル種類 | 保存場所 | 内容 |
|---|---|---|---|
| 1 | アプリ本体 | /Applications/ | .app 形式の実行ファイル |
| 2 | 設定ファイル | ~/Library/Preferences/~/Library/Application Support/ | ユーザー設定、プラグイン、データ |
| 3 | キャッシュ | ~/Library/Caches/~/Library/Homebrew/downloads/ | インストーラーやダウンロードファイル |
各コマンドがこれらのファイルに対してどのように動作するかを理解することが、適切な使い分けの第一歩となります。
設定ファイルが残ることの影響
uninstall でアプリを削除した後、設定ファイルが残り続けることで以下のような問題が発生する可能性があります。
設定ファイルが残ることで起こる問題
- ディスク容量を無駄に消費してしまう
- 再インストール時に古い設定が読み込まれ、不具合の原因になる
- セキュリティ上のリスク(認証情報やトークンが残存する場合)
- システムの肥大化による動作速度の低下
これらの問題を避けるためには、状況に応じて適切なコマンドを選択する必要があるのです。
解決策
install:新規インストールの基本
install コマンドは、アプリケーションを新規にインストールする際に使用します。
基本的な使い方
bashbrew install --cask [アプリケーション名]
実行される処理
install コマンドを実行すると、以下の処理が順次行われます。
mermaidflowchart LR
start["install実行"] --> check["既存確認"]
check -->|未インストール| download["インストーラー<br/>ダウンロード"]
check -->|既にインストール済み| skip["スキップ"]
download --> cache["キャッシュに保存"]
cache --> extract["展開・インストール"]
extract --> move["Applications<br/>フォルダへ移動"]
move --> done["完了"]
skip --> done
図で示したように、ダウンロードしたインストーラーはキャッシュに保存されるため、再インストール時に高速化されるメリットがあります。
複数アプリの一括インストール
複数のアプリケーションを同時にインストールすることも可能です。
bashbrew install --cask google-chrome visual-studio-code slack
この方法を使えば、新しい Mac のセットアップ時に必要なアプリをまとめてインストールできますね。
upgrade:既存アプリの更新
upgrade コマンドは、既にインストールされているアプリケーションを最新版にアップデートする際に使用します。
基本的な使い方
bash# すべてのアプリを更新
brew upgrade --cask
bash# 特定のアプリのみ更新
brew upgrade --cask google-chrome
upgrade の重要な特徴
upgrade コマンドの最も重要な特徴は、設定ファイルを保持したままアプリ本体だけを更新する という点です。
mermaidflowchart TD
start["upgrade実行"] --> check["更新確認"]
check -->|新版あり| download["新版ダウンロード"]
check -->|最新版| skip["スキップ"]
download --> backup["旧版を退避"]
backup --> install["新版インストール"]
install --> settings["設定ファイル保持"]
settings --> cleanup["旧版削除"]
cleanup --> done["完了"]
skip --> done
この動作により、アップデート後も以前の設定やカスタマイズがそのまま引き継がれます。ユーザーエクスペリエンスを損なうことなくアプリを最新の状態に保てるのです。
更新前の確認
どのアプリに更新があるかを事前に確認したい場合は、以下のコマンドを使用します。
bashbrew outdated --cask
これにより、更新可能なアプリの一覧が表示されるため、選択的にアップデートすることができます。
uninstall:アプリ本体のみ削除
uninstall コマンドは、アプリケーション本体を削除しますが、設定ファイルやキャッシュは残します。
基本的な使い方
bashbrew uninstall --cask [アプリケーション名]
uninstall が削除するもの・残すもの
以下の表で、uninstall の動作を整理しました。
| # | ファイル種類 | 削除 | 保持 | 理由 |
|---|---|---|---|---|
| 1 | アプリ本体(.app) | ★ | - | 削除対象 |
| 2 | 設定ファイル | - | ★ | 再インストール時に復元可能 |
| 3 | ユーザーデータ | - | ★ | データ保護のため |
| 4 | キャッシュ | - | ★ | 再インストールの高速化 |
uninstall を使うべきシーン
以下のような状況では、uninstall が適切な選択となります。
uninstall の使用シーン
- アプリを一時的に削除し、後で再インストールする予定がある
- ディスク容量を確保したいが、設定は保持しておきたい
- 不具合が発生したため、アプリだけを再インストールしたい
- 複数のバージョンを試したいが、設定は共通で使いたい
設定を保持することで、再インストール後すぐに以前の環境を復元できるメリットがあります。
zap:完全削除で痕跡を残さない
zap コマンドは、アプリケーションに関連するすべてのファイルを削除します。これが最も徹底した削除方法です。
基本的な使い方
bash# まずuninstallを実行
brew uninstall --cask [アプリケーション名]
# 次にzapで完全削除
brew zap --cask [アプリケーション名]
zap が削除するファイルの範囲
zap コマンドは、以下のような広範囲のファイルを削除します。
bash# 削除対象の例(Visual Studio Codeの場合)
~/Library/Application Support/Code/
~/Library/Preferences/com.microsoft.VSCode.plist
~/Library/Saved Application State/com.microsoft.VSCode.savedState/
~/Library/Caches/com.microsoft.VSCode/
~/.vscode/
これらのファイルは、アプリの設定、拡張機能、キャッシュ、ログなど、アプリに関連するあらゆるデータを含んでいます。
zap の動作フロー
mermaidflowchart TD
start["zap実行"] --> check["アプリの<br/>アンインストール確認"]
check -->|未アンインストール| error["エラー:<br/>先にuninstall必要"]
check -->|アンインストール済み| scan["関連ファイル<br/>スキャン"]
scan --> app_support["Application Support<br/>削除"]
app_support --> prefs["Preferences<br/>削除"]
prefs --> caches["Caches<br/>削除"]
caches --> logs["Logs<br/>削除"]
logs --> other["その他関連ファイル<br/>削除"]
other --> done["完全削除完了"]
上記の図が示すように、zap は段階的に各種ファイルを削除していきます。
zap を使うべきシーン
以下のような状況では、zap による完全削除が推奨されます。
zap の使用シーン
- アプリを完全に削除し、今後使う予定がない
- 設定ファイルが破損し、クリーンな状態から再インストールしたい
- セキュリティ上の理由で認証情報を完全に削除したい
- ディスク容量を最大限確保したい
- アプリの不具合が設定ファイルに起因している可能性がある
特に、アプリを完全にアンインストールしてクリーンインストールしたい場合、uninstall → zap → install という流れが効果的です。
具体例
ケース 1:Google Chrome を新規インストール
新しい Mac で Google Chrome をインストールする場合の手順です。
インストール手順
bash# Homebrewがインストールされているか確認
brew --version
上記コマンドでバージョンが表示されれば、Homebrew は正常にインストールされています。
bash# Google Chromeをインストール
brew install --cask google-chrome
このコマンドを実行すると、以下のような出力が表示されます。
bash==> Downloading https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
####################################################################### 100.0%
==> Installing Cask google-chrome
==> Moving App 'Google Chrome.app' to '/Applications/Google Chrome.app'
🍺 google-chrome was successfully installed!
これで /Applications/ フォルダに Google Chrome がインストールされました。初回起動時は通常通り初期設定を行えます。
ケース 2:Visual Studio Code を最新版にアップデート
既にインストールされている Visual Studio Code を更新する場合です。
更新の確認
まず、更新が必要かどうかを確認しましょう。
bash# 更新可能なアプリを確認
brew outdated --cask
Visual Studio Code に更新がある場合、以下のように表示されます。
bashvisual-studio-code (1.85.0) != 1.86.0
この出力から、現在のバージョンが 1.85.0 で、最新版が 1.86.0 であることがわかります。
アップデート実行
bash# Visual Studio Codeを最新版に更新
brew upgrade --cask visual-studio-code
実行結果の例は以下の通りです。
bash==> Downloading https://update.code.visualstudio.com/1.86.0/darwin/stable
####################################################################### 100.0%
==> Upgrading visual-studio-code
==> Backing up Visual Studio Code.app to /usr/local/Caskroom/visual-studio-code/1.85.0/Visual Studio Code.app
==> Removing App '/Applications/Visual Studio Code.app'
==> Moving App 'Visual Studio Code.app' to '/Applications/Visual Studio Code.app'
==> Purging files for version 1.85.0 of Cask visual-studio-code
🍺 visual-studio-code was successfully upgraded!
アップデート後、Visual Studio Code を起動すると、以前の設定や拡張機能がそのまま使える状態になっています。これが upgrade の大きなメリットですね。
ケース 3:Slack を設定を残してアンインストール
一時的に Slack を削除したいが、再インストール時に設定を復元したい場合です。
アンインストール前の状態確認
bash# Slackがインストールされているか確認
brew list --cask | grep slack
Slack がインストールされている場合、slack と表示されます。
アンインストール実行
bash# Slackをアンインストール(設定は保持)
brew uninstall --cask slack
実行結果は以下のようになります。
bash==> Uninstalling Cask slack
==> Removing App '/Applications/Slack.app'
==> Purging files for version 4.36.140 of Cask slack
🍺 slack was successfully uninstalled!
保持される設定ファイルの確認
アンインストール後も、以下のファイルは残っています。
bash# 設定ファイルの確認
ls ~/Library/Application\ Support/Slack
ls ~/Library/Preferences/com.tinyspeck.slackmacgap.plist
これらのファイルが存在することで、再インストール時にワークスペースやログイン情報が復元されます。
再インストールと設定の復元
後日、Slack を再インストールすると、以前の設定が自動的に読み込まれます。
bash# 再インストール
brew install --cask slack
Slack を起動すると、以前ログインしていたワークスペースがそのまま表示されるため、再度ログインする手間が省けるのです。
ケース 4:Docker Desktop を完全削除してクリーンインストール
Docker Desktop で不具合が発生し、完全にクリーンな状態から再インストールしたい場合の手順です。
ステップ 1:アンインストール
まず、Docker Desktop をアンインストールします。
bash# Docker Desktopをアンインストール
brew uninstall --cask docker
この段階では、アプリ本体のみが削除され、設定ファイルやイメージデータは残っています。
ステップ 2:完全削除(zap)
次に、zap コマンドで関連ファイルをすべて削除します。
bash# 設定ファイルやデータを完全削除
brew zap --cask docker
zap が削除するファイルの例は以下の通りです。
bash# 削除される主なファイル・ディレクトリ
~/Library/Application Support/Docker Desktop/
~/Library/Preferences/com.docker.docker.plist
~/Library/Group Containers/group.com.docker/
~/Library/Containers/com.docker.docker/
~/.docker/
これらには Docker のコンテナイメージ、ボリューム、ネットワーク設定などが含まれます。完全削除により、これらすべてが消去されるのです。
ステップ 3:クリーンインストール
完全削除後、新規インストールを行います。
bash# Docker Desktopを新規インストール
brew install --cask docker
インストール後に Docker Desktop を起動すると、初回セットアップ画面が表示されます。これで完全にクリーンな状態からスタートできました。
不具合解決の確認
この方法は、以下のような不具合の解決に効果的です。
| # | 不具合症状 | 原因 | 解決方法 |
|---|---|---|---|
| 1 | Docker が起動しない | 設定ファイルの破損 | zap → 再インストール |
| 2 | コンテナが正常に動作しない | ネットワーク設定の不整合 | zap → 再インストール |
| 3 | ディスク容量が異常に多い | キャッシュの肥大化 | zap → 再インストール |
| 4 | エラー:Error: Cannot start service | 古い設定との競合 | zap → 再インストール |
クリーンインストールにより、これらの問題が解決することが多いのです。
ケース 5:複数アプリの一括管理
開発環境を構築する際、複数のアプリを効率的に管理する方法を見ていきます。
Brewfile を使った一括インストール
Brewfile というファイルを作成することで、必要なアプリをまとめて管理できます。
bash# Brewfileの作成
touch Brewfile
Brewfile の内容例は以下の通りです。
ruby# ブラウザ
cask "google-chrome"
cask "firefox"
# 開発ツール
cask "visual-studio-code"
cask "iterm2"
cask "docker"
# コミュニケーション
cask "slack"
cask "zoom"
上記のファイルを作成したら、一括インストールを実行します。
bash# Brewfileに記載されたアプリを一括インストール
brew bundle install
この方法を使えば、新しい Mac のセットアップが数分で完了するでしょう。
一括アップデート
すべてのアプリを最新版にアップデートする場合は、以下のコマンドを実行します。
bash# インストール済みのすべてのアプリを更新
brew upgrade --cask
定期的にこのコマンドを実行することで、セキュリティパッチや新機能を確実に適用できます。
使わなくなったアプリの一括削除
複数のアプリを一度に削除することも可能です。
bash# 複数のアプリを同時にアンインストール
brew uninstall --cask firefox zoom
さらに、完全削除を行う場合は以下のように続けます。
bash# 完全削除
brew zap --cask firefox zoom
これにより、不要になったアプリとその設定を効率的に削除できるのです。
まとめ
Homebrew Cask の 4 つのコマンド(install、upgrade、uninstall、zap)の使い分けについて解説してきました。最後に、重要なポイントをおさらいしましょう。
コマンド選択のフローチャート
どのコマンドを使うべきか迷った際は、以下のフローチャートを参考にしてください。
mermaidflowchart TD
start["何をしたい?"] --> install_q["新しいアプリを<br/>インストールしたい"]
start --> update_q["既存のアプリを<br/>更新したい"]
start --> remove_q["アプリを<br/>削除したい"]
install_q --> do_install["installを使用"]
update_q --> do_upgrade["upgradeを使用"]
remove_q --> settings_q["設定を残したい?"]
settings_q -->|はい| do_uninstall["uninstallを使用"]
settings_q -->|いいえ| do_both["uninstall → zapで<br/>完全削除"]
この図を見れば、目的に応じて適切なコマンドが選択できますね。
各コマンドの使い分けまとめ
それぞれのコマンドの特徴を改めて整理します。
install:新しい始まり
- 新規アプリのインストールに使用
- ダウンロードファイルはキャッシュに保存される
- 複数アプリの同時インストールが可能
upgrade:進化を続ける
- 既存アプリを最新版にアップデート
- 設定ファイルは保持されるため、環境を維持できる
- セキュリティパッチの適用にも重要
uninstall:一時的な別れ
- アプリ本体のみを削除
- 設定ファイルやキャッシュは保持
- 再インストール時に設定を復元可能
zap:完全なリセット
- アプリに関連するすべてのファイルを削除
- クリーンな状態からやり直したい場合に最適
- セキュリティ上の観点からも重要
実践的なアドバイス
日常的な使用において、以下のポイントを意識すると良いでしょう。
定期的なメンテナンス
週に一度、または月に一度、以下のコマンドを実行することをおすすめします。
bash# 更新可能なアプリを確認
brew outdated --cask
# すべてのアプリを最新版に更新
brew upgrade --cask
# 使用していないアプリの確認
brew list --cask
これにより、セキュリティリスクを低減し、最新の機能を享受できます。
トラブルシューティング時のアプローチ
アプリが正常に動作しない場合、以下の順序で対処すると効果的です。
- まず
upgradeで最新版にアップデート - それでも解決しない場合は
uninstall→installで再インストール - さらに問題が続く場合は
uninstall→zap→installでクリーンインストール
段階的にアプローチすることで、設定を失うリスクを最小限に抑えられるのです。
最後に
Homebrew Cask は macOS での開発環境構築に欠かせないツールです。4 つのコマンドの違いを理解することで、効率的かつ安全にアプリケーションを管理できるようになります。
この記事で紹介した早見表や具体例を参考に、ぜひ実際の開発環境で活用してみてください。コマンドラインからのアプリ管理に慣れると、作業効率が大幅に向上することを実感できるでしょう。
関連リンク
articleHomebrew Cask 早見表:install/upgrade/uninstall/zap の使い分け一発理解
articleHomebrew Apple Silicon 最適セットアップ:/opt/homebrew の PATH・GUI 連携まで一気通貫
articleHomebrew の Bottle vs ソースビルド比較検証:時間・サイズ・再現性の差をデータで解説
articleHomebrew 最新動向 2025:Apple Silicon 時代のパッケージ管理トレンド総まとめ
articleHomebrew をチーム標準化:Brewfile と社内 Tap で PC セットアップをコード化する
articleHomebrew「Permission denied / Operation not permitted」対策:権限・SIP・所有権を総点検
articleNode.js で GraphQL サーバー構築:Yoga/Apollo を最小構成で立ち上げる
articleMistral が JSON 破綻する時の対処:出力拘束・再試行・検証リカバリ
articleNext.js の キャッシュ無効化設計:タグ・パス・スケジュールの 3 軸でコントロール
articleJavaScript Web Crypto 実務入門:署名・ハッシュ・暗号化の使い分け
articlehtmx で実現するハイパーメディア設計:リンクとフォームを API として扱う
articleHomebrew Cask 早見表:install/upgrade/uninstall/zap の使い分け一発理解
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来