🐡
Homebrew 管理のパッケージを常に最新の状態に維持する
tl;dr
- Homebrew のパッケージ管理に Homebrew Autoupdate がオススメ
Homebrew Autoupdate とは&使い方
定期的に下記のコマンドを実行していました。自動実行したいものの cron / plist だと管理対象が増えるのと sudo 権限が必要な Cask もあって、長らく .zshrc にエイリアスを貼る形で耐え忍んでいました。
brew update && brew upgrade --greedy && brew cleanup
ChatGPT と会話している中で下記に辿り着きました。長々と御託を並べても仕方ないので端的に。
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
以上です。
Discussion