It’s that time of year again when Apple updates OSX.

On the one hand, it’s a little like an early Christmas. There are always bells and whistles in the new version. Things do get better. Sometimes more better than others.

I’ve never had an update go completely without a hitch, though.

This year’s hitch. Vagrant broke. Actually it was VirtualBox that broke, so Vagrant couldn’t do it’s thing either. In any event after updating OSX, I got this on vagrant up:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "create"]

Stderr: 0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterface, interface IHostNetworkInterface
VBoxManage: error: Context: "int handleCreate(HandlerArg*, int, int*)" at line 66 of file VBoxManageHostonly.cpp

If you’re not developing for the web on your Mac, you probably don’t care. But if you do, here’s what worked for me.

Step 0 — Reinstall VirtualBox and Vagrant.

If you’re developing, I don’t need to tell you how to do this.

  1. VirtualBox
  2. Vagrant

After you’ve reinstalled, you may still get an error. As it turns out, vagrant installs itself in /usr/bin, which El Capitan makes un-writable even by root. The fix is simple enough (HT Nick Barrett):

$ sudo ln -s /opt/vagrant/bin/vagrant /usr/local/bin/vagrant

That’s all it took. So in all, a lot of Christmas with minimal hassle this year!

Happy coding!