Upgrade OS X operating system from the command line

You can upgrade software with sudo softwareupdate --install --all. Is it possible to upgrade the OS itself from the command line?


Since the OS X installer is an app, you would need a scripting framework to automate clicking of the buttons. Far easier to set up a MDM solution where the installer is turned into a netboot resource than to hack apart the UI and script the installation.

For starters, look at the AutoDMG or Imagr/NBICreator.

You can integrate these with most MDM like Casper/Munki or roll an imaging solution like DeployStudio - but all of these require external computers to manage/supply the computer being updated. There isn't a simple extension to the Apple provided softwareupdate tool since it is designed to patch an OS and apps and not run the upgrade/migration on itself. Even the best surgeon in town gets someone else to operate on their knee when they go under the knife.


Wouldn't appear to be, looking at the man page; unless it appears in the --list arg

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/softwareupdate.8.html

     --l | --list
                 List all available updates.

     -i | --install
                 Each update specified by args is downloaded and installed.  args can be one of the follow-ing: following:
                 ing:

                 -r | --recommended
                             All updates that are recommended for your system. These are prefixed with a *
                             character in the --list output.

                 -a | --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-recom-mended (Non-recommended
                             mended updates are uncommon in any case.)

                 item ...    One or more specified updates. The --list output shows the item names you can
                             specify here, prefixed by the * or - characters.