Updating your Mac using softwareupdate, SilentKnight and silnite

Although Apple encourages users to set the Software Update pane to keep their Mac up to date automatically, there are good reasons for wanting finer control. For many of us, the only thing we want to do is check for updates automatically, then decide what to do when they’re available. This article looks at three options to deal with that: the command tool softwareupdate, my free app SilentKnight, and my free command tool silnite.

softwareupdate

To obtain a list of available updates from Apple’s software update servers:
softwareupdate -l --include-config-data
[El Capitan softwareupdate -l]

To download and install all available updates:
softwareupdate -ia --include-config-data
[El Capitan sudo softwareupdate -ia]

To download but not install all available updates:
softwareupdate -a --include-config-data
[El Capitan sudo softwareupdate -a]

To download and install a single named update:
softwareupdate -i --include-config-data updatename
[El Capitan sudo softwareupdate -i updatename]
where updatename is the label of the update you want to install. That is obtained from the list of available updates, and normally doesn’t contain any spaces.

Be careful when copying and pasting those commands from here: the parameter --include-config-data is preceded by two hyphens, not a single dash.

SilentKnight

By default, SilentKnight downloads and installs all available updates from Apple’s software update servers. This works well for security data and other small updates, but isn’t such a good idea for macOS updates, and I recommend that those are performed using the Software Update pane, or the softwareupdate command if you prefer. When you open SilentKnight and it performs its initial check to see what updates are available, I therefore recommend that, if that list contains a macOS update, you quit SilentKnight, open the Software Update pane, and install that macOS update first. Once that’s complete, open SilentKnight again and see if there are any smaller updates still waiting.

SilentKnight can also be set to download but not install updates, or even not to check for updates at all. The controls for these are in the app’s menu, and you can also set their preferences directly (detailed in the app’s help reference book).

silentknight701

Normal default state is for SilentKnight to automatically check for updates, as shown by the tick √ next to the Check Updates item here. When that’s not ticked, no check will be made to see if updates are available.

The other normal default is to automatically install updates that are downloaded, as shown by the tick √ next to the Install Updates item. When that’s not ticked, updates will still be downloaded but not installed, and that menu item won’t show a tick. To make this even clearer, SilentKnight’s windows then show a yellow warning triangle ⚠️ to indicate that updates won’t be installed automatically.

The commonest problem when using SilentKnight is to have inadvertently disabled automatic installation of updates. This can prove very frustrating, as you’ll download them and wonder why they never get installed. To remedy that, simply select the menu command so that it shows
√ Install Updates
then quit SilentKnight, open it again and check that setting is fixed, without using the command again to disable it.

The other problem is when SilentKnight shows that updates are available, among which are macOS updates or others which you don’t wish to install. If you were to use the Install all updates button, then all would be downloaded and installed. Rather than disabling installation altogether, SilentKnight lets you download and install single updates.

To do that, you’ll need the list of available updates in the scrolling text area. Each update listed there normally takes two lines, the first of which gives that update’s label, a name which normally doesn’t include spaces. That’s the name of the update that you need to be able to install it individually.

silentknight11203

In the File menu, use the Install Named Update… command to display the SilentKnight Updater window. Copy and paste the label for the update you want to install into the box labelled Name of update, then click the Install Named Update button. SilentKnight should then download and install just the update you have requested. Repeat that for each update you want to install.

silentknight11202

silnite

My free command tool silnite has become extremely popular, although like most command tools it’s more complex to use than its GUI app SilentKnight. Before using silnite, ask yourself whether you really want that complexity. I wrote these tools, run them several times every day, but never use silnite myself, instead using SilentKnight every time.

silnite is controlled by options. To make life even easier for you, you can use a hyphen before its options, or just give the letters. So
silnite -ax
and
silnite ax
do exactly the same thing.

silnite comes with a readme document which explains all its options in full. As far as updating is concerned, it has one option u to control that. Add that option to the command and it will also run
softwareupdate -ia --include-config-data
to download and install all available updates, which could include a macOS update.

By default, silnite also checks for and reports any updates which are available. If you want to disable that when checking only the basic set (option b), then add m to the list of options.

In the default text report, availability of updates is reported as
No update available.
or the list of updates generated by softwareupdate.

In JSONised property list format, this appears with the key UpdateWaiting, which is 0 when no update is available, or 1 when there are updates.

I don’t recommend that you use silnite to manage system and security data updates. If you want to do that from the command line or scripts, you’re much better using softwareupdate itself. However, those options are available if you wish to use them.

Apple Studio Display

As you’ve no doubt heard, Apple’s new Studio Display contains an A13 chip running a cut-down version of iOS as its ‘firmware’. Updates to that are delivered through Software Update, and it declares its own ‘firmware’ version. My Studio Display should arrive in the next week or two. Once it has, I will be extending SilentKnight and possibly silnite too to support features of this new display.