Download a full ‘Install macOS’ app with softwareupdate in Catalina

Catalina is out! While you are preparing for your upgrade, here’s a nice new feature for MacAdmins:

The softwareupdate command has gained a new option in Catalina:

% softwareupdate --fetch-full-installer

Will download the latest ‘Install macOS’ application to this Mac’s /Applications folder. This is extremely useful for many admin tasks.

The --fetch-full-installer flag has a sub-flag: --full-installer-version which allows you to download a specific version.

% softwareupdate --fetch-full-installer --full-installer-version 10.14.6

During my testing in the Catalina beta version I was able to download 10.15, 10.14.6, 10.14.5, and 10.13.6. I was not able to test if 10.13.6 would download the hardware specific build of 10.13.6 for the 2018 MacBook Pro, since I do not have that hardware.

I would assume that downloading an Installer application for a macOS version that is not supported on the hardware you are running the command on would fail. (Again I did not have such hardware available for testing.)

So far the only way to download the macOS Installer in some automated fashion was using Greg Neagle’s installinstallmacos.py script. That script still has some abilities that do not seem to be available to the softwareupdate command, but it is good to see Apple accepting the need for this kind of workflow.

23 thoughts on “Download a full ‘Install macOS’ app with softwareupdate in Catalina”

  1. I’ve done some tests with a MacBook Pro 13″ 2018, and a MacBook Air 13″ 2013.
    On the MPB2018 I’m unable to download the 10.13.6 installer, fails with error: update not found.
    Since it was running a custom fork of 10.13.6, it might not actually be an officially supported model for 10.13?

    On the MBA2013, 10.13.6 downloads without issue. I can’t go any lower though, so it seems this way of downloading macOS is limited to downloading the currently supported versions only.
    This kind of makes sense but is still annoying when you need an installer for an older machine.

    Still, big improvement over Mojave’s inability to download anything other but Mojave through the app store (AFAIK).

  2. It’s interesting what version it chooses to download if you don’t specify one. It said it was “Downloading and installing (null) installer“. OK, not great programming on Apple’s part there. Anyway, I’m running 10.15.1 beta 2 on my MacBook, but the command chose to download the Mojave installer to my apps folder. Weird. Then I tried specifying 10.15.0, and was told “Install failed with error: update not found“. So this seems like a promising new command in Catalina, but one that needs a few bugs ironed out.

  3. I’m on 10.15.2 and need to roll back to 10.15.1 🙁 Tried this method but says Install failed with error: Update not found. Any advice/help please!

    1. Usually, when Apple publishes a new minor update, they remove the previous minor version from download. If you did not archive the installer you are out of luck.

      1. I’m afraid this is going to be the case. While multiple sites have suggested that any version back through 10.13.6 would be available for download using this tool it seems that only the latest version from each release family is available. For example I’m desperately seeking 10.14.5 or 10.14.4 to downgrade a 2017 iMac to troubleshoot some software compatibility issues. This fetch-full-installer tool in Catalina (both under 10.15.1 and 10.15.2) give the dreaded “Install failed with error: Update not found” either immediately, or after a teasing false status suggesting it might be working that ultimately stalls around 77-83% and then gives the same error. If anyone has any workarounds or suggestions on how I might acquire 10.14.4 or 10.14.5 – I’ll sing and dance at your daughter’s wedding…or just offer you my undying gratitude.

          1. The workaround I found to that was to completely disconnect ethernet and wifi, and then change my computer date/time to before the certificates expired. I’m then able to run the needed legacy installers that I have archived/on boot drives.

  4. 10.15.5 appears to have broken the following command: softwareupdate -d –fetch-full-installer –full-installer-version 10.15.5

    It gives the following error now:
    SUPreferenceManager: Failed to set object of class: __NSCFConstantString for key: LastRecommendedMajorOSBundleIdentifier with error: Error Domain=SUPreferenceManagerErrorDomain Code=1 “(null)”

    1. I see those error messages, too but it still downloads for me, despite the errors. Not sure what the `-d` is doing in your command, though?

      1. This morning it downloaded for me as well despite the multiple SUPreferenceManager errors. It would be nice to know what those are about.
        –fetch-full-installer doesn’t always work for me, dunno why not.
        -d is so that it only downloads and doesn’t start to install.

      2. Well, shoot. Creating the install media created the following error.
        Error: Error Domain=NSCocoaErrorDomain Code=512 ““InstallESD.dmg” couldn’t be copied to “SharedSupport”.” UserInfo={NSSourceFilePathErrorKey=/Applications/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, NSUserStringVariant=(
        Copy
        ), NSDestinationFilePath=/Volumes/Install macOS Catalina/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, NSFilePath=/Applications/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, NSUnderlyingError=0x7ff029024410 {Error Domain=NSPOSIXErrorDomain Code=5 “Input/output error”}}The copy of the installer app failed.

        1. You probably have a broken download. Try deleting and downloading again, if this persists, check if there is a Caching Server with a broken download in the cache in the network?

          1. I suspect the downloaded file is broken because of the SUPreferenceManager error that occurred when using –fetch-full-installer with 10.15.5.

  5. Hi,
    I tried your scripts provided (thank you) – none were recognized by Terminal. When typing (copying ) in your command for 10.14.6 OR 10.15.1, I get this message:
    softwareupdate: unrecognized option `–fetch-full-installer’
    softwareupdate: unrecognized option `–full-installer-version’
    usage: softwareupdate [ …]

    Why did this happen?
    Thank you,
    DLC

    1. At some point in your copy and pasting the command, the double dashes `–` before the options got converted into n-dashes `–`. Terminal requires there to be double-dashes before the options, i.e. `–fetch-full-installer` and `–full-installer-version`.

      1. Thank you very much for your reply. Interesting, as all I did was copy and paste the posted command into my Terminal – I do not know what changed the double dashes to “N” dashes (I admit, I do not know how to type an N dash), but it would have been a finder gesture, not my typing.
        I did try to type in the provided command line into Terminal, copying your provision exactly – all i got was a “No such job” response.
        I’m still stuck with a command line that does not behave in the manner predicted, and, no download.
        Thank you,
        DLC

          1. Thank you again for such a prompt response.
            Again, copying your script verbatim (minus the % sign) yields this Terminal response:
            softwareupdate: unrecognized option `–fetch-full-installer’
            softwareupdate: unrecognized option `–full-installer-version’

            When I type in the command, replacing the two dashes with the (I presume) double dash (using option-hyphen keystroke twice) and enter, I get this:
            softwareupdate [ …]

            Still no successful command line 🙁
            Thank you,
            DLC

  6. This worked for me (2020-09-18). I am reinstalling 10.13.6 on an older Mini now and downloading 10.14.6 for another machine.

    SUPreferenceManager errors were present but didn’t cause harm. I assume because I’m running as an unprivileged user?

    Dana, use dash-dash, not option-dash.
    Howie, did you run out of disk space?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.