Installing Xcode Command Line Tools

homebrewxcode

I performed a fresh install of macOS Mojave 10.14. Immediately after that I installed Xcode Version 10.0 (10A255) from the Mac App Store.

Now, I wish to install Homebrew which requires Xcode Command Line Tools to be installed. My understanding is that installing Xcode also installs the Command Line Tools. Or not?

As per this answer, I checked if the Command Line Tools are installed by running:

xcode-select -p

which printed the path for the Developer directory as follows:

/Applications/Xcode.app/Contents/Developer

As suggested in the answer, I also verified the return value by running:

echo $?

which retuned 0.

I also ran, gcc and make and bash was able to locate and execute them.

Thus far I am convinced that the Xcode Command Line Tools are installed. Now when I execute:

xcode-select --install

I get this alert:

enter image description here

What's the probable reason for this disparity? Will this install Xcode Command Line Tools twice? Or overwrite the existing installation?

As I understand, Xcode Command Line Tools can be installed without installing Xcode. Also, from my previous experience, if the Command Line Tools aren't installed separately from Xcode (by running xcode-select --install), they are not detected by Homebrew, i.e. when running brew config, the value for CLT: is shown as N/A.

Here's the complete picture (pardon the pun):

enter image description here

Although I am talking in context of macOS Mojave, the question remains the same with regard to previous versions of macOS.

What is the advisable approach to take here?

Note: After installing Xcode, I launched it, accepted license agreement and let it finish its run of installing additional tools (which is a one time activity).

Best Answer

Apparently, there is some distinction between the command line tools installed for use by Xcode and the tools installed for system-wide use:

For my machine, running xcode-select --install and choosing to install the tools from the window that popped up helped fix the problem. I was able to confirm that it was fixed when running brew config and seeing a valid entry for CLT:

macOS: 10.14-x86_64
CLT: 10.0.0.0.1.1535735448
Xcode: 10.0