T-CREATOR

Homebrew Cask 早見表:install/upgrade/uninstall/zap の使い分け一発理解

Homebrew Cask 早見表:install/upgrade/uninstall/zap の使い分け一発理解

macOS で GUI アプリケーションを管理する際、Homebrew Cask は非常に便利なツールです。しかし、installupgradeuninstallzap という 4 つのコマンドがあり、それぞれどのような場面で使うべきか迷ってしまうことはありませんか?

今回は、これらのコマンドの違いと使い分けを、早見表と具体例を交えて徹底解説します。この記事を読めば、Homebrew Cask のコマンドを自信を持って使い分けられるようになるでしょう。

Homebrew Cask コマンド早見表

各コマンドの特徴を表で整理しました。まずはこちらをご覧ください。

#コマンド用途アプリ本体設定ファイルキャッシュ使用シーン
1install新規インストールインストール-ダウンロード保存新しいアプリを導入するとき
2upgradeバージョンアップ更新保持新版をダウンロードアプリを最新版にしたいとき
3uninstallアンインストール削除保持保持アプリだけ削除、設定は残したいとき
4zap完全削除削除削除削除アプリも設定も全て消したいとき

この表を見れば、どのコマンドがどのファイルに影響するかが一目瞭然ですね。それでは、各コマンドの詳細を見ていきましょう。

背景

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 つのコマンドの使い分けです。特に以下のような疑問が生まれやすいでしょう。

よくある疑問

  • アプリを削除したい場合、uninstallzap のどちらを使うべきか
  • 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 の使用シーン

  • アプリを完全に削除し、今後使う予定がない
  • 設定ファイルが破損し、クリーンな状態から再インストールしたい
  • セキュリティ上の理由で認証情報を完全に削除したい
  • ディスク容量を最大限確保したい
  • アプリの不具合が設定ファイルに起因している可能性がある

特に、アプリを完全にアンインストールしてクリーンインストールしたい場合、uninstallzapinstall という流れが効果的です。

具体例

ケース 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 を起動すると、初回セットアップ画面が表示されます。これで完全にクリーンな状態からスタートできました。

不具合解決の確認

この方法は、以下のような不具合の解決に効果的です。

#不具合症状原因解決方法
1Docker が起動しない設定ファイルの破損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 つのコマンド(installupgradeuninstallzap)の使い分けについて解説してきました。最後に、重要なポイントをおさらいしましょう。

コマンド選択のフローチャート

どのコマンドを使うべきか迷った際は、以下のフローチャートを参考にしてください。

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

これにより、セキュリティリスクを低減し、最新の機能を享受できます。

トラブルシューティング時のアプローチ

アプリが正常に動作しない場合、以下の順序で対処すると効果的です。

  1. まず upgrade で最新版にアップデート
  2. それでも解決しない場合は uninstallinstall で再インストール
  3. さらに問題が続く場合は uninstallzapinstall でクリーンインストール

段階的にアプローチすることで、設定を失うリスクを最小限に抑えられるのです。

最後に

Homebrew Cask は macOS での開発環境構築に欠かせないツールです。4 つのコマンドの違いを理解することで、効率的かつ安全にアプリケーションを管理できるようになります。

この記事で紹介した早見表や具体例を参考に、ぜひ実際の開発環境で活用してみてください。コマンドラインからのアプリ管理に慣れると、作業効率が大幅に向上することを実感できるでしょう。

関連リンク