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:
softwareupdate --help usage: softwareupdate <cmd> [<args> ...] ** Manage Updates: -l | --list List all appropriate update labels (options: --no-scan, --product-types) -d | --download Download Only -i | --install Install <label> ... specific updates -a | --all All appropriate updates -R | --restart Automatically restart (or shut down) if required to complete installation. -r | --recommended Only recommended updates --list-full-installers List the available macOS Installers --fetch-full-installer Install the latest recommended macOS Installer --full-installer-version The version of macOS to install. Ex: --full-installer-version 10.15 --install-rosetta Install Rosetta 2 --background Trigger a background scan and update operation ** Other Tools: --dump-state Log the internal state of the SU daemon to /var/log/install.log --evaluate-products Evaluate a list of product keys specified by the --products option --history Show the install history. By default, only displays updates installed by softwareupdate. --all Include all processes in history (including App installs) ** Options: --no-scan Do not scan when listing or installing updates (use available updates previously scanned) --product-types <type> Limit a scan to a particular product type only - ignoring all others Ex: --product-types macOS || --product-types macOS,Safari --products A comma-separated (no spaces) list of product keys to operate on. --force Force an operation to complete. Use with --background to trigger a background scan regardless of "Automatically check" pref --agree-to-license Agree to the software license agreement without user interaction. --verbose Enable verbose output --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!
softwareupdate --list-full-installers Finding available software Software Update found the following full installers: * Title: macOS Big Sur, Version: 11.2.3, Size: 12211077798K * Title: macOS Big Sur, Version: 11.2.2, Size: 12200254955K * Title: macOS Big Sur, Version: 11.2.1, Size: 12199403070K * Title: macOS Catalina, Version: 10.15.7, Size: 8248985973K * Title: macOS Catalina, Version: 10.15.7, Size: 8248854894K * Title: macOS Catalina, Version: 10.15.6, Size: 8248781171K * Title: macOS Mojave, Version: 10.14.6, Size: 6038419486K * Title: macOS High Sierra, Version: 10.13.6, Size: 5221689433K
Happy Downloading and a huge Thank You to the folks at Apple!