New Key Added to SoftwareUpdate Command in macOS
Background
When Big Sur released, I noticed an issue trying to discover what macOS versions were available in SoftwareUpdate. I worked around this by using the installinstallmacos.py script to download full installers from the store. This script/tool is solid, but I was really hoping to be able to just do the updates using softwareupdate. Awhile back I filed feedback with Apple to the following:
The --fetch-full-installer parameter for the softwareupdate command line tool is awesome, but there's currently no way to discover the list of available values for the --full-installer-version parameter. Can you please add a --list-installer-versions parameter (or something to that effect) that would show the list of available full installer versions that softwareupdate can download? My understanding is the installer versions relate to the product marketing version (like 11.0, or 10.15.7), but as those versions are added/removed it would be nice easily discover that from the command line.
I admittedly forgot about the feedback after filing it (hoping that someday someone might see it and care).
New Functionality Arrives
To my surprise, I saw a note replying in December saying they fixed this in a new release. The response was vague and pointed to the "About this mac" functionality, which seemed odd. Nevertheless, I went into the command line and started poking around. I ran the softwareupdate
command with the help parameter and found a new option:
1softwareupdate --help
2usage: softwareupdate <cmd> [<args> ...]
3
4** Manage Updates:
5 -l | --list List all appropriate update labels (options: --no-scan, --product-types)
6 -d | --download Download Only
7 -i | --install Install
8 <label> ... specific updates
9 -a | --all All appropriate updates
10 -R | --restart Automatically restart (or shut down) if required to complete installation.
11 -r | --recommended Only recommended updates
12 --list-full-installers List the available macOS Installers
13 --fetch-full-installer Install the latest recommended macOS Installer
14 --full-installer-version The version of macOS to install. Ex: --full-installer-version 10.15
15 --install-rosetta Install Rosetta 2
16 --background Trigger a background scan and update operation
17
18** Other Tools:
19 --dump-state Log the internal state of the SU daemon to /var/log/install.log
20 --evaluate-products Evaluate a list of product keys specified by the --products option
21 --history Show the install history. By default, only displays updates installed by softwareupdate.
22 --all Include all processes in history (including App installs)
23
24** Options:
25 --no-scan Do not scan when listing or installing updates (use available updates previously scanned)
26 --product-types <type> Limit a scan to a particular product type only - ignoring all others
27 Ex: --product-types macOS || --product-types macOS,Safari
28 --products A comma-separated (no spaces) list of product keys to operate on.
29 --force Force an operation to complete. Use with --background to trigger a background scan regardless of "Automatically check" pref
30 --agree-to-license Agree to the software license agreement without user interaction.
31
32 --verbose Enable verbose output
33 --help Print this help
Did you catch that?
--list-full-installers List the available macOS Installers
YES! We can now get the list of installers that are available to download!
1softwareupdate --list-full-installers
2Finding available software
3Software Update found the following full installers:
4* Title: macOS Big Sur, Version: 11.2.3, Size: 12211077798K
5* Title: macOS Big Sur, Version: 11.2.2, Size: 12200254955K
6* Title: macOS Big Sur, Version: 11.2.1, Size: 12199403070K
7* Title: macOS Catalina, Version: 10.15.7, Size: 8248985973K
8* Title: macOS Catalina, Version: 10.15.7, Size: 8248854894K
9* Title: macOS Catalina, Version: 10.15.6, Size: 8248781171K
10* Title: macOS Mojave, Version: 10.14.6, Size: 6038419486K
11* Title: macOS High Sierra, Version: 10.13.6, Size: 5221689433K
Happy Downloading and a huge Thank You to the folks at Apple!