The solution to node-gyp & Ruby FFI problems
After almost every update of MacOS, my Nodejs and Ruby set up seem to break. This has to do with the xcode command line utilities, as these are required when compiling a native extension like
fsevents using Apple’s clang compiler.
The errors look something like this:
xcode-select: error: tool 'xcodebuild' requires Xcode, butactive developer directory '/Library/Developer/CommandLineTools'is a command line tools instance xcode-select: error: tool 'xcodebuild' requires Xcode, butactive developer directory '/Library/Developer/CommandLineTools'is a command line tools instance No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'. gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1
Have you tried turning it on and off?
(are they actually installed?)
This installs the command line tools.
Most of the time you will get
xcode-select: error: command line tools are already installed, use "Software Update" to install updates so you probably want to move on to the next approach.
sudo xcode-select --reset
After running that in your terminal, restart it. If that doesn’t do it, you’ll need a more aggressive approach.
sudo rm -rf $(xcode-select -print-path) xcode-select --install
You must then click your way through the licenses and prompts, and in about 10 minutes, the command line tools will have been reinstalled.
Note: It is not smart to copy and paste anything with
rm -rf in it, you should print the path first and delete it yourself.