Cron hat Ihren PATH nicht definiert, stellen Sie sicher, dass Sie Befehle immer mit dem vollständigen Pfad aufrufen, der wahrscheinlich /usr/local/bin/brew update
ist
Dies wird als bewährte Methode angesehen, um zu verhindern, dass unerwünschte/unerwartete Befehle ausgeführt werden. Wenn jemand ein bösartiges Skript mit dem Namen „brew“ an einer anderen Stelle in Ihren Pfad einfügen würde, aber vor /usr/local/bin, würde es stattdessen aufgerufen werden.
Ein Cronjob ist eine gute Option, aber ich wollte nicht, dass es automatisch passiert. Ich habe ein Skript gefunden, das Sie benachrichtigt, wenn eine neue Version einer auf Ihrem Mac installierten Formel verfügbar ist.
Ich habe das Skript so erweitert, dass angeheftete Formeln nicht im Notifier angezeigt werden.
Ich habe mich für einen Launchd-Agenten für das cronjb entschieden, da dieser auch läuft, wenn Mac später gestartet wird. Cron-Jobs werden nur ausgeführt, wenn Ihr Mac zu diesem Zeitpunkt bereits eingeschaltet ist.
Für einen Vergleich zwischen cronjob und launchd empfehle ich die Lektüre dieses Artikels.
Hier ist meine Konfiguration, die jeden Tag um 10 und 15 Uhr ausgeführt wird. Das vom Agent aufgerufene Skript befindet sich unter /usr/local/bin/homebrew-update-notifier
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnableGlobbing</key>
<false/>
<key>Label</key>
<string>homebrew.simonsimcity.update-notifier</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/usr/local/bin/homebrew-update-notifier</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/homebrew.simonsimcity.update-notifier.err</string>
<key>StandardOutPath</key>
<string>/tmp/homebrew.simonsimcity.update-notifier.out</string>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>10</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Hour</key>
<integer>15</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</array>
</dict>
</plist>
Sie werden nun benachrichtigt, wenn ein neues Update verfügbar ist. Rufen Sie brew upgrade
an wenn Sie sich veraltet fühlen, oder nehmen Sie es in das Skript auf.