-
-
Save mokagio/b974620ee8dcf5c0671f to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# See http://apple.stackexchange.com/questions/107307/how-can-i-install-the-command-line-tools-completely-from-the-command-line | |
echo "Checking Xcode CLI tools" | |
# Only run if the tools are not installed yet | |
# To check that try to print the SDK path | |
xcode-select -p &> /dev/null | |
if [ $? -ne 0 ]; then | |
echo "Xcode CLI tools not found. Installing them..." | |
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress; | |
PROD=$(softwareupdate -l | | |
grep "\*.*Command Line" | | |
head -n 1 | awk -F"*" '{print $2}' | | |
sed -e 's/^ *//' | | |
tr -d '\n') | |
softwareupdate -i "$PROD" -v; | |
else | |
echo "Xcode CLI tools OK" | |
fi |
Thank you for the code. I had to modify this slightly for it to run on Monterey 12.0.1. I have not regression tested this but it would be simple to check the OS version and use your original code for versions prior to Monterey (if this code doesn't work for them).
#!/bin/bash
# See http://apple.stackexchange.com/questions/107307/how-can-i-install-the-command-line-tools-completely-from-the-command-line
echo "Checking Xcode CLI tools"
# Only run if the tools are not installed yet
# To check that try to print the SDK path
xcode-select -p &> /dev/null
if [ $? -ne 0 ]; then
echo "Xcode CLI tools not found. Installing them..."
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;
PROD=$(softwareupdate -l |
grep "\*.*Command Line" |
tail -n 1 | sed 's/^[^C]* //')
echo "Prod: ${PROD}"
softwareupdate -i "$PROD" --verbose;
else
echo "Xcode CLI tools OK"
fi
Thanks for this! Had same issue of needing to install over ssh over vpn, so no chance to get at the GUI (also had to remove the -v
)
I tested the version from @That-Dude and it works under my VM of Big Sur 11.5.2. Catalina 10.15.3 fails.
Thank you for the code. I had to modify this slightly for it to run on Monterey 12.0.1. I have not regression tested this but it would be simple to check the OS version and use your original code for versions prior to Monterey (if this code doesn't work for them).
Work on macOS Catalina
FWIW I was using this to install on an old Mojave Mac mini over ssh. softwareupdate didn't recognize the -v option so I had to remove it for it to run.
Still, thanks for the help :-)