macOS Developer Tools

1 minute read

Ich darf mich aktuell mal wieder mit Linux umtun. So richtig ehrliches Hacken, Coden und mit dem Compiler die CPU-Lüfter zum heulen bringen.

Daher sammele ich jetzt mal ein paar Tipps, wie sich diese Arbeit mit macOS erledigen lässt.

Verschiedene Versionen der Command Line Tools

Von Haus aus gibt es auf macOS immer nur eine Version der Command Line Tools. Welche das ist, erfährt man via: xcode-select -p

Manchmal ist das aber nicht die, die man benötigt. Dann braucht es etwas Magie. Oder gezieltes Suchen bei Stackoverflow.

Um weitere Versionen der Command Line Tools parallel zu installieren, lädt man sich zunächst die entsprechende Version bei Apple herunter. Das DMG klickt man dann ganz normal an und es erscheint der Pfad /Volumes/Command Line Developer Tools.

Als nächstes benötigt man einen lokalen Pfad für die Installation. Ich mache das unter ~/Developer/<Version>/CommandLineTools. Also für den Fall der Command Line Tools 11.5 mkdir -p ~/Developer/11.5/CommandLineTools.

Als nächstes muss das Package ausgepackt werden. Dafür gibt es eine nicht-dokumentierte Option für pkgutils: --expand-full <pkg> <dir> Das Verzeichnis, wohin ausgepackt werden soll, darf es noch nicht geben.

Der Befehl dazu lautet dann: pkgutil --expand-full /Volumes/Command\ Line\ Developer\ Tools/Command\ Line\ Tools.pkg ~/Developer/tmp

Als nächstes müssen die Dateien aus dem Package in das Installationsverzeichnis kopiert werden:

cp -a Developer/tmp/CLTools_Executables.pkg/Payload/Library/Developer/CommandLineTools/* Developer/11.5/CommandLineTools
cp -a Developer/tmp/CLTools_macOS1014_SDK.pkg/Payload/Library/Developer/CommandLineTools/* Developer/11.5/CommandLineTools
cp -a Developer/tmp/CLTools_macOS1015_SDK.pkg/Payload/Library/Developer/CommandLineTools/* Developer/11.5/CommandLineTools
cp -a  Developer/tmp/CLTools_macOS_SDK.pkg/Payload/Library/Developer/CommandLineTools/* Developer/11.5/CommandLineTools
rm -rf Developer/tmp

Wenn das erledigt ist, kann die Auswahl der Command Line Tools angepasst werden:

gbeine@mbpgb ~ % clang --version
Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
gbeine@mbpgb ~ % sudo xcode-select -s ~/Developer/11.5/CommandLineTools/
gbeine@mbpgb ~ % xcode-select -p
/Users/gbeine/Developer/11.5/CommandLineTools
gbeine@mbpgb ~ % clang --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Users/gbeine/Developer/11.5/CommandLineTools/usr/bin
gbeine@mbpgb ~ %

Geholfen haben mir dabei zwei Threads auf Stackoverflow: