Cron no tiene su RUTA definida, asegúrese de llamar siempre a los comandos con la ruta completa, que probablemente sea /usr/local/bin/brew update
Esto se considera una buena práctica para evitar que se ejecuten comandos no deseados/inesperados. Si alguien coloca un script malicioso llamado 'brew' en otro lugar de su ruta, pero antes de /usr/local/bin, se llamará en su lugar.
Un cronjob es una buena opción, pero no quería que sucediera automáticamente. Encontré un script que le notificará si hay disponible una nueva versión de una fórmula instalada en su Mac.
Extendí la secuencia de comandos para que no muestre fórmulas ancladas en el notificador.
Decidí usar un agente de lanzamiento para el cronjb, porque esto también se ejecuta si Mac se inicia más tarde. Los trabajos cron solo se ejecutan si su Mac ya está encendida en ese momento.
Para una comparación de cronjob vs launchd, recomiendo leer esto.
Aquí está mi configuración que se ejecuta todos los días a las 10 a. m. y a las 3 p. m. El script, llamado por el agente, se encuentra en /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>
Ahora se le notificará si hay una nueva actualización disponible. Llama al brew upgrade
si se siente desactualizado, o inclúyalo en el guión.