MacOS – ny way to force CLI “softwareupdate” to display & install updates other than the latest one

command linemacossoftware-update

I'm currently trying to install updates for Mac OS Catalina using softwareupdate CLI tool.

I successfully upgraded a 10.15.5 installation on a VM to 10.15.6:

softwareupdate -iaR

I tried installing 10.15.3 in a separate VM and I noticed if I list the available updates, the only one being displayed is the latest:

softwareupdate -l results

Which is inconvenient since I would like to manage updates selectively.

Any way to force this to display more updates? I know creating a temporary file in /tmp/ forces the command line tools update to be displayed, for example.

I was thinking as well of just downloading the specific update dmg from Apple Downloads.

Best Answer

We script softwareupdate to pick from some or one of the advertised installs but not to pick a “n-1” patch version like you are asking.

I don’t think you can pull 10.5.5 from the command line now that 10.5.6 is out. Hopefully someone smart and clever can let me know if I’m wrong here.

I would grab the files from the download link and script them if that’s your main goal. Apple is being asked by the Macintosh admin community to allow a delay so we can pause / delay the latest for 2 weeks or 4 weeks, but that functionality isn’t shipping yet. The command line tools are a special case where you can fake things out as far as I can tell from working with Apple Engineering on this the past year or so (and talking with peers in the macadmin community).

The consensus “long term / stable solution” seems to be to get some machines in the beta program / seeding program so you can test these releases before they ship and then hop on updates on your fleet a week to three past when the general availability. Then you can just not update when a new one or blocking one arrives - as opposed to try to pick something that’s not the latest.

We like to let machines update as soon as they can and only block a new update due to known issues / inability to have a backup / restore checkpoint if we run into issues. Then once we know we’re good, we push an update to catch up the machines where people don’t self update on day 1 of an update being available.

Don’t under estimate Apple’s clear goal to get everyone to patch securely and rapidly. User experience is poor when an update breaks things, but also degrades when too many patches are in service and bugs not fixed.