使用下载的 pkg 文件时,xcode 命令行工具安装在哪里?

Posted

技术标签:

【中文标题】使用下载的 pkg 文件时,xcode 命令行工具安装在哪里?【英文标题】:Where is xcode command line tools installed to when using the downloaded pkg file? 【发布时间】:2020-09-24 08:33:46 【问题描述】:

我的电脑上安装了 Xcode。最初我在打开 Xcode 时通过提示安装了 xcode 命令行工具。在我的 Xcode 首选项中,在位置部分中,命令行工具读取 Xcode 12.0 (12A7209) 并在其下方读取路径 /Applications/Xcode.app。但是,正如在堆栈溢出中记录的 NUMEROUS 次一样,Homebrew 无法识别我的 xcode 命令行工具(CLT:N/A)。因此,我从 Apple Developer 下载了 pkg 文件,并使用该 pkg 文件重新安装了命令行工具,因为命令行安装 xcode-select --install 不起作用。 gui 安装程序完成,没有错误。现在,Homebrew 可以识别我的 CLT。

问题:如果 Xcode 已经安装了命令行工具,那么从 Apple 开发者那里下载的 pkg 文件也安装了命令行工具的位置是什么?这是否给我的系统留下了 2 个版本的 xcode 命令行工具?

运行xcode-select -p 会输出以下内容,正如许多人已经注意到的那样: /Applications/Xcode.app/Contents/Developer

另外which -a xcode-select也只返回/usr/bin/xcode-select

额外的 pkg 安装在我的计算机上做了什么?

如果我们必须从 pkg 重新安装它们才能让命令行程序读取它,那么在打开时让 Xcode 安装 xcode 命令行工具有什么用?

【问题讨论】:

【参考方案1】:

如果 Xcode 已经安装了命令行工具,那么从 Apple 开发者那里下载的 pkg 文件也安装了命令行工具的位置是什么?

/Library/Developer/CommandLineTools

这是否让我在我的系统上留下了 2 个版本的 xcode 命令行工具?

不完全是“xcode”命令行工具,而是两个 CLT,是的。理想情况下,自制软件应该使用xcrun 来找到它们并使用任何可用的。

正如许多人已经注意到的那样,运行 xcode-select -p 会输出以下内容:/Applications/Xcode.app/Contents/Developer

这是正确的,也是意料之中的。如果您有 Xcode,则应使用 Xcode 的 CLT。如果你删除 Xcode,它应该输出:

/Library/Developer/

您可以手动更改此路径

xcode-select -s <path>

额外的 pkg 安装在我的计算机上做了什么?

它只是坐在那里供任何人使用。

如果我们必须从 pkg 重新安装它们才能让命令行程序读取它,那么在打开时让 Xcode 安装 xcode 命令行工具有什么用?

不使用现有的 Xcode CLT 是不好的。

【讨论】:

您知道让 Brew 识别和使用 Xcode CLT 的方法吗?此外,是否有单独的命令来利用 pkg 安装的 CLT?当我运行 xcrun --show-sdk-path 它仍然输出 Xcode CLT 的路径 /Applications/Xcode.app/Content/..... 您可以创建一个从 Xcode 的开发者文件夹到 /Library/Developer 文件夹的符号链接。您是否尝试使用 -s 选项手动设置路径? 为什么我要将 XCLTS 符号链接到 pkg 安装的 CLT?或者你的意思是相反的?我会尝试,但是是否有特定的可执行文件来进行符号链接?另外,手动更改路径对当前使用 XCLT 的其他程序(如果有的话)有什么影响?

以上是关于使用下载的 pkg 文件时,xcode 命令行工具安装在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

用于开源编译/构建的 Apple 命令行工具和 XCode?

使用命令行工具从 Xcode 复制文件

XCode:使用命令行工具,如何从文件夹创建 git 并将其导入项目

Xcode命令行简单了解一下

如何使用 Xcode 5 从命令行运行 xctest?

Xcode 命令行工具和制作