Terminal Command Line Software Update

Looking for the best way to update my mac using the command line. By the way, I’m talking about a way to get the update from the Mac store, you know - those notifications that ask you to update every day.

Also, is there a way yo update multiple Macs at once?

Never tried it, but this might work.

I use software -i a in a update alias I run ~once/month. I’ve recently shifted to using topgrade which doesn’t update everything I want it to but most.

1 Like

I use CleanMyMac to upgrade non-app store software.
Inspired by @tjluoma’s recent post, I created a cron job to update homebrew (not as fancy as his, but I don’t need notifications, etc).
And pop into the App Store for updates every once in a while.

This is what I use

sudo softwareupdate --install --all --restart --list --include-config-data

–install

Each update specified by args is downloaded and installed.

–all

All updates that are applicable to your system, including those non-recommended ones, which are prefixed with a - character in the --list output. (Non-recommended updates are uncommon in any case.)

–restart:

Automatically restart (or shut down) if required to complete installation. If the user invoking this tool is logged in then macOS will attempt to quit all applications, logout, and restart. If the user is not logged in, macOS will trigger a forced reboot if necessary.

The --include-config-data is something that I learned about from:

where he said

In Sierra and High Sierra you can add system and security updates
with the --include-config-data option

I actually have a launchd which runs this command every night on all of my Macs at like 4am so that I never have to deal with waiting for the updates to complete.


This is not for Mac App Store apps, of course. For that you can try mas but I’ve found it to be very hit-or-miss, which is not too surprising since it is working with undocumented APIs and not intended to be used this way.

The most reliable way that I’ve found to check for updates in the Mac App Store is to use this:

macappstore://showUpdatesPage?scan=true

which should launch the Mac App Store and tell it to check for app updates.

However, I still run MacUpdater (not to be confused with “MacUpdate Desktop”) every few days to check for app updates, and it finds Mac App Store apps which have updates. In that case I just open the individual page for the Mac App Store app and click the “Update” button.

(ps - MacUpdater is a great app for updating your Mac apps, and it’s only $10 [one-time fee], vs MacUpdate Desktop which is a terrible app and costs $20-40/year.)

2 Likes

I use(d) the clean my mac updater too, but have just tried macupdater as mentioned by @tjluoma and it found a lot more apps with updates.

Cleanmymac showed none, macupdater and that found 15 apps that had updates.

Thank you for mentioning topgrade!

I had written a script which did several of these things, but this tool does even more.

Also this introduced me to pipx which I want to try out now (instead of pip3).

2 Likes

Hah! When looking for the link to top grade I discovered pipx too and reinstalled a bunch of stuff with it

Well, if we’re going to branch out beyond macOS updates, I’ll mention my di scripts (“Download and Install”) which will install/update non-Mac App Store apps:

Each script will work completely independently on a “stock” Mac, so you don’t have to install anything else to get it working.

You can download all of the scripts and use di-auto.sh to update only apps which are already installed, and / or use individual scripts if you want to install an app which is not already installed.

The nice thing is that you can set di-auto.sh to run daily / weekly (assuming your Mac is on) and avoid the interruption of finding out there is a new update for an app just after you launched it.

2 Likes

@tjluoma Thank you very much. And thank you for everything you do for the Mac community as whole.

You’re welcome. It’s my pleasure. I’ve received a lot of help myself over the years, so I’m happy to do the same when I can.

1 Like

Topgrade is just awesome, set that with launchd and it’s all done.