🐡

Homebrew 管理のパッケージを常に最新の状態に維持する

2025/02/19に公開

tl;dr

  • Homebrew のパッケージ管理に Homebrew Autoupdate がオススメ

Homebrew Autoupdate とは&使い方

定期的に下記のコマンドを実行していました。自動実行したいものの cron / plist だと管理対象が増えるのと sudo 権限が必要な Cask もあって、長らく .zshrc にエイリアスを貼る形で耐え忍んでいました。

brew update && brew upgrade --greedy && brew cleanup

ChatGPT と会話している中で下記に辿り着きました。長々と御託を並べても仕方ないので端的に。

https://github.com/DomT4/homebrew-autoupdate

Homebrew Autoupdate なるものが既にありました。入れてみます。

brew tap homebrew/autoupdate
参考:ヘルプの日本語訳
❯ brew autoupdate --help

Usage: brew autoupdate subcommand [interval] [options]

Homebrewを自動更新するための簡単で便利な方法です。

このスクリプトは、明示的に停止するよう指示されるまで、launchdを利用してバックグラウンドで24時間ごと(デフォルト)にbrew updateを実行します。

brew autoupdate start [interval] [options]:
    interval秒ごと、または24時間ごとに自動更新を開始します。なお、intervalは秒単位で指定する必要があるため、例えば12時間の場合はbrew autoupdate start 43200となります。自動更新を即座に開始し、システム起動時にも実行したい場合は--immediateを指定してください。また、brew upgradeおよび/またはbrew cleanupを自動で実行するには、それぞれ--upgradeまたは--cleanupを指定してください。

brew autoupdate stop:
    自動更新を停止しますが、plistとログは保持します。

brew autoupdate delete:
    自動更新をキャンセルし、plistとログを削除します。

brew autoupdate status:
    このツールの現在の状態を表示します。

brew autoupdate version:
    このツールの現在のバージョンと簡単な変更履歴を出力します。

      --upgrade                    インストール済みのformulaeを自動的にアップグレードします。もしローカルにCaskroomが存在する場合、caskもアップグレードされます。startと一緒に指定する必要があります.
      --greedy                     自動更新されるcaskも含め、--greedyを利用してcaskをアップグレードします。startと一緒に指定する必要があります.
      --cleanup                    Homebrewのキャッシュとログを自動的にクリーンアップします。startと一緒に指定する必要があります.
      --immediate                  1回目のインターバル(デフォルトで24時間)が経過するのを待たずに、すぐにかつシステム起動時にautoupdateコマンドを開始します。startと一緒に指定する必要があります.
      --sudo                       もしcaskがsudoを要求する場合、autoupdateはパスワード入力用のGUIを表示します。https://formulae.brew.sh/formula/pinentry-mac のインストールが必要です.
  -d, --debug                      デバッグ情報を表示します.
  -q, --quiet                      出力を控えめにします.
  -v, --verbose                    より詳細な出力を表示します.
  -h, --help                       このメッセージを表示します.

sudo 権限を付与する場合は下記のパッケージを追加でインストールしてください。

brew install pinentry-mac

私の場合はさらに greedy / cleanup オプションをつけたいので下記で指定。

brew autoupdate start --upgrade --greedy --cleanup --sudo

作成をやり直す場合は下記のコマンドを実行してください。

brew autoupdate delete

以上です。

GitHubで編集を提案

Discussion