Udržet Mac aktuální neni zas tak jednoduchá věc. Systém se aktualizuje na jednom místě, část aplikací přímo z App Storu, část zase po vlastní ose a vývojářské nástroje zase úplně jinak. Jakoby to nestačilo, ideálně si pak každý systém o aktualizaci řekne v jiný a zároveň nejméně vhodný okamžik.

Aktualizační peklíčko: systém, App Store, Sparkle,…
Donutilo mě to tedy povypínat automatické aktualizace a poslepovat jednoduchý skript, který přibližně jednou za měsíc spustím po „zdravotním“ restartu systému a jen počkám, než se vše aktualizuje:
softwareupdate -ia && echo '✅ macOS updated!' && brew upgrade && echo '✅ Brew updated!' && brew cu -ay && echo '✅ Casks updated!' && brew cleanup
Co vše se příkazy aktualizuje?
softwareupdate -ia
Systémovinky jinak dostupné v Předvolby systému > Aktualizace softwaru
. Cíleně běží jako první, protože navazující aktualizace si volí verzi v závislosti na verzi macOS. To bohužel zároveň vede k potřebě někdy spustit celý skript znovu, pokud aktualizace restartovala systém a první běh tak přerušila.
brew upgrade
Aktualizuje zejména vývojářské nástroje a samotné Homebrew. Nemá ale úplně ideálně podchycenou aktualizaci aplikací, takže je lepší doinstalovat brew-cask-upgrade a nechat jejich správu na dalším příkazu.
brew cu -ay
Postahuje nové verze aplikací, které si jinak aktualizace zajišťují po vlastní ose, většinou přes profláklý Sparkle. Jen je k tomu potřeba původní instalace nahradit těmi z Homebrew (instalují se jako tzv. „cask“) a zjistit, jestli s tím nemají problém. Třeba do Sketche je pokaždé nutné se znovu přihlásit, takže ho radši nadále aktualizuji ručně, když si o to řekne.
brew cleanup
Brew si různě odkládá starší verze aplikací, postahované instalační balíky a kdovíco ještě. Tohle je smaže.
Mezikroky
&&
spojující příkazy akorát zajistí, že další proběhnou jen pokud předešlé úspěšně doběhnou a echo ✅ (...)
používám jen pro vizuální oddělení jednotlivých kroků.
App Storovky se relativně spolehlivě aktualizují samy na pozadí, takže je neřeším. Teoreticky by to šlo přes mas-cli a kontrola nad aktuálností Macu by byla 100% z jednoho místa.