Now I am become macOS update

Last Saturday, I found myself in the unusual position of praising Apple on Twitter. I was updating my new M1 MacBook Air to macOS 11.2.2, and I found the “time remaining” estimate to be surprisingly accurate.

OS update progress screen

Not just near the end, when I took the photo, but right from the beginning and throughout the process, the countdown matched what really happened. As someone whose Apple-related tweets tend toward criticism and snark, I thought it was worth commenting when Apple fixed something that was a longstanding subject of ridicule.

The honeymoon didn’t last long. The next day, while trying to take a screenshot with SnapClip, I got an error message about the system being unable to find xcrun, which is part of macOS’s Command Line Tools. After a little googling on the text of the error message and some exploration in the Finder, I learned that the OS update had deleted the entire

/Library/Developer/CommandLineTools/usr/bin

directory, where xcrun lives.1

Fixing the problem wasn’t hard; I just ran

xcode-select --install

and a few minutes later everything was back to normal.

When I learned yesterday that 11.2.3 had been released, I decided to update right away. Two reasons:

  1. I wanted to know whether Apple had fixed things or whether this update would also destroy the Command Line Tools installation.
  2. If it was the latter, I wanted to do the update while I still remembered how to repair the damage.

Immediately after updating, I tried to run SnapClip and got the same xcrun error. I looked in

/Library/Developer/CommandLineTools/usr

and found that its bin subdirectory—as well as several others—was gone. Annoying, but at least I had the fix at my fingertips.

Many years ago, OS updates would sometimes overwrite the Python site-packages directory in the /Library/Python tree. This was pretty bad behavior, as the whole point of the site-packages directory is to hold modules that the user installed. But I think destroying Command Line Tools is even worse because Apple is overwriting directories installed by its own software. And how has this gotten past Apple’s developers? Surely they have Command Line Tools installed on their machines.

In one sense Apple’s “time remaining” estimate is still wrong because it doesn’t account for the time I have to spend reinstalling what it destroyed.


  1. I freely confess that I don’t understand why xcrun is necessary to run SnapClip. As far as I know, it isn’t called by any of SnapClip’s components, and its man page doesn’t indicate to me why it would be necessary. But my ignorance doesn’t change the fact that it is necessary.