How to Update macOS Using a Simple Terminal Command

If you're sick of waiting for the progress bar to complete every time you reboot after a macOS software update, then you'll be pleased to learn there's another way to update your Mac that could potentially reduce your downtime.

The process involves a simple Terminal command, and allows you to continue using your Mac as the update downloads and the initial software installation takes place in the background. In our tests, we found that this method was capable of shaving off several minutes of idle time during installation restarts, but that the time-saving depends on the machine and the update in question.

Users with older Macs in particular will likely appreciate this tip, as it saves having to fire up the Mac App Store altogether, which can be slow-going and sometimes even downright unresponsive. Read on to find out how it's done.

How to Update macOS From the Command Line


Before following these steps, ensure you have a full backup of your system, which should be par for the course when performing any update. Note that the following procedure only lists stock Apple system updates (iTunes, Photos, printer drivers the like), but not updates for other Apple apps that aren't installed with macOS (Xcode, for instance), and not third-party updates from the Mac App Store.

  1. To update macOS from the command line, first launch Terminal, which can be found in the Applications/Utilities folder. This will open a Terminal window and a command prompt for you to begin typing.

  2. Input the following command and press Enter: softwareupdate -l

  3. Wait as your Mac searches Apple's servers for any macOS software updates currently available for your system. If no updates are available, you'll be returned to the command prompt.
Now let's take a look at the command's output. Available updates always appear as items in a list. In our example, only one update is available at this time, but every item follows the same format, as shown:


The asterisked line denotes the individual software update package that's available for your Mac to download. This line is also known as the identifier.


The second line offers a more detailed description of the update, including the version number (usually in brackets) and the download file size in kilobytes. [Recommended] means the update is recommended for all users, and [restart] indicates that your Mac needs to reboot for installation to complete.

To download and install a specific update in the list, use the following format, but replacing NAME with the update's identifier:

softwareupdate -i NAME

Or:

softwareupdate --install NAME

Note that if the package name you’re trying to install has spaces in it, you'll need to enclose the whole thing in single quotes. So for example:

softwareupdate --install 'macOS High Sierra 10.13.3 Supplemental Update-'

Also, be alert for spaces at the end of the package names. If present, they also need to be included within the quotes.

Moving on, to download a specific update for your system without also installing it then and there, you can use:

softwareupdate -d NAME

Updates downloaded in this way can be subsequently installed with the same -i or --install command above, or even through the Mac App Store. These updates are downloaded to a folder located in /Library/Updates, but they aren't designed to be installed by double-clicking the packages in that directory. You'll need to use the --install command or visit the Mac App Store to actually initiate the install.

Lastly, to download and install all available updates for your system, type the command:

softwareupdate -i -a

Using these commands, you'll be able to leave the update to download and continue to install in the background while you get on with other things. All being well, Terminal will eventually prompt you to restart your machine manually so that the full installation procedure can complete. (Note that the softwareupdate utility requires admin authentication for all commands except the -l or -list command. If you run softwareupdate as a normal admin user, you will be prompted for a password where required.)


As some users will no doubt be aware, there are several additional options that can be used in conjunction with the softwareupdate utility. For example, -schedule on/off enables/disables your Mac's scheduled background check for updates. More adventurous readers can use man softwareupdate and softwareupdate -h for a summary list of commands.

Related Roundup: macOS High Sierra


Top Rated Comments

(View all)
Avatar
7 months ago

My point, a good OS, no need for terminal. Apple makes a good OS, for most terminal rarely if ever needed. The reason I stay with MacOS.

As a software engineer I'm always amazed that there are people who are so CLI-phobic. The GUI has little or nothing to do with the OS. Neither does the terminal for that matter. They are both human user interfaces to communicate with the machine OS.

The difference is the CLI typically provides more options and is more concise in how you do things.

Given the time and resources to create a GUI there are often compromises made to get the basic functionality without providing all of the options.

macOS is a Unix based OS at it's core, just like Solaris, Linux or FreeBSD. Lots of money allowed Apple to create better than average GUI apps and interfaces. There is little magic in the Darwin OS itself.

Praising the CLI over the GUI is a matter of preference and what you need to get done.
Rating: 7 Votes
Avatar
7 months ago
I just stick with "sudo softwareupdate -ia" for all my updates these days. That has never caught me up in any errors, and always works.
Rating: 6 Votes
Avatar
7 months ago
Apple has a pretty comprehensive set of commmand line tools that it seems like nobody ever talks about.

I found this one useful several years ago when the Mac App Store just wasn’t working for me.
Rating: 6 Votes
Avatar
7 months ago

Buy Apple Products so I do not need the terminal commands. When I feel like I am missing the good old days, fire up my RaspberryPi. :D


I used to think like this also. But these days the Apple UI is getting so bad, that I have started using the command line more and more. I have to agree with the article, the App Store app sucks. When it was just the software update app it seemed to work just fine.

But the App Store app UI is usually out of sync with what is actually happening. If you are like me, when its time to install updates, I want them installed now, not sometime in the future when the App Store app feels like. Usually, I have made extra backups and cleaned everything up, before installing. After the update I check a number of things to make sure they are not hosed.

5 years ago I installed Apple update without any additional work, the day they were released. Not any more. Apple has, by its actions, lost my trust. Today I won't install any update until after its been out for weeks, if not longer. IMO Apple's main thrust these days is publicity, not performance and reliability and I am not willing to let their lack of ability effect my income.
Rating: 5 Votes
Avatar
7 months ago
Whenever I see articles regarding Terminal it reminds me of this story regarding # rm -rf *

http://www.lug.wsu.edu/node/414
Rating: 5 Votes
Avatar
7 months ago

Unfortunately, I think this might get laughed at.


Why's that?
Rating: 4 Votes
Avatar
7 months ago

NERD ALERT! ;)

Yes, and finally so!
Back to the good ol' geek UNIX fun of macOS!!
Rating: 4 Votes
Avatar
7 months ago
Unfortunately, I think this might get laughed at.
Rating: 2 Votes
Avatar
7 months ago

Buy Apple Products so I do not need the terminal commands. When I feel like I am missing the good old days, fire up my RaspberryPi. :D

It's the opposite thing for many others though. They got to or stayed with Macs because of the terminal. It's hard to think of a good OS without one.
Rating: 2 Votes
Avatar
7 months ago

How do we not update with a terminl command?


man softwareupdate

...that will give you the options, one of which is ignore.
[doublepost=1519948640][/doublepost]

My point, a good OS, no need for terminal. Apple makes a good OS, for most terminal rarely if ever needed. The reason I stay with MacOS.


Terrible point. A good OS needs a GUI and a terminal. That's why when Mac OS X first came out it was awesome compared to its contemporaries in the desktop computing market. Many a Linux geek I knew at the time (2001) went, "This is what Linux should be like!"
Rating: 2 Votes
[ Read All Comments ]