如何在Mac OS X中的多个命令行工具安装之间切换(不安装XCode)

Mil*_*lad 3 macos xcode xcode-command-line-tools

在Mac OS X中是否可以在多个版本的命令行工具之间安装和切换?我想知道是否可以使用,xcode-select但是命令行工具安装程序没有选择安装目标的选项。我尝试通过手动重命名Library/Developer/CommandLineTools然后将其传递给来创建多个安装xcode-select。该命令成功,但是当我尝试访问gcc时得到:

gcc: error: unable to find Xcode installation from active developer path "/Library/Developer/CommandLineTools_9.0.0", use xcode-select to change

安装整个XCode时似乎有可能,但是我不需要XCode并更愿意不安装它。我需要的只是命令行工具。

小智 5

我尝试做同样的事情,经过一些实验找到了下一个解决方案。是的,可以,但是您需要复制/重命名整个/Library/Developer文件夹。例如:

1)首先,我只显示我的macOS版本:

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G65
Run Code Online (Sandbox Code Playgroud)

2)下载并安装Xcode的命令行工具,例如10b5版本

3)创建文件夹以存储不同版本的工具:

$ mkdir ~/Project/tools
$ mkdir ~/Projects/tools/Developer10b5
$ mkdir ~/Projects/tools/Developer9.4.1
Run Code Online (Sandbox Code Playgroud)

4)复制整个Developer文件夹:

$ cp -R /Library/Developer/ ~/Project/tools/Developer10b5/
Run Code Online (Sandbox Code Playgroud)

5)然后,下载并安装Xcode的命令行工具,例如9.4.1版本

6)复制整个Developer文件夹:

$ cp -R /Library/Developer/ ~/Project/tools/Developer9.4.1/
Run Code Online (Sandbox Code Playgroud)

7)切换到9.4.1版本的工具并检查clang版本:

$ sudo xcode-select -s ~/Project/tools/Developer9.4.1/
$ clang --version

Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Users/<username>/Projects/tools/Developer9.4.1/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)

8)切换到10b5版本的工具并检查clang版本:

$ clang --version
Apple LLVM version 10.0.0 (clang-1000.10.40.1)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Users/<username>/Projects/tools/Developer10b5/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)