如何更新 Xcode 命令行工具?

How to update Xcode Command Line Tools?

我正在尝试更新 mac osx 上的命令行工具。

~  softwareupdate --list
Software Update Tool
Copyright 2002-2015 Apple Inc.

Finding available software
Software Update found the following new or updated software:
   
   * Command Line Tools (macOS El Capitan version 10.11) for Xcode-8.2
    Command Line Tools (macOS El Capitan version 10.11) for Xcode (8.2), 150374K [recommended]
   * iTunesX-12.5.5
    iTunes (12.5.5), 263476K [recommended]

但是当我 运行 更新命令时,我得到这个错误:

softwareupdate -i Command Line Tools (macOS El Capitan version 10.11) for Xcode-8.2
zsh: number expected

这也不行:

softwareupdate -i Command Line Tools
Software Update Tool
Copyright 2002-2015 Apple Inc.

Command: No such update
Line: No such update
Tools: No such update
No updates are available.

我应该在 sofwareupdate -i 命令后指定什么具体的字符串?

运行softwareupdate -i "Command Line Tools (macOS El Capitan version 10.11) for Xcode-8.2"。引号很重要。

我 运行 使用 sudo 相同的命令就成功了。

sudo softwareupdate -i "Command Line Tools (macOS El Capitan version 10.11) for Xcode-8.2"

我将在这里回答一个稍微不同的问题,因为当我搜索我的问题的解决方案时出现了这个问题。希望它能对某人有所帮助(下次我 运行 遇到同样的问题时它肯定会帮助我)。

我想将命令行工具从版本 8 升级到版本 9。App Store 没有建议升级,softwareupdate --list 也没有。

xcode-select --install

安装了新版本的工具。但是clang --version还是给出了8.0.0作为版本号。 xcode-select -r 并且重新启动并没有解决这个问题。

xcode-select -p返回/Applications/Xcode.app/Contents/Developerclang --version报那里有安装目录。我以为我会重新开始。

sudo rm -rf /Applications/Xcode.app

删除了工具的第 8 版。但是xcode-select --install说命令行工具已经安装了。

sudo xcode-select -r

现在,sudo xcode-select -p returns /Library/Developer/CommandLineTools/.

看来问题是新版本的工具安装到了不同的目录,xcode-select -r不够聪明,找不到最新的版本。

对于未来的旅行者,这里有一个与版本无关的方法。首先,运行softwareupdate --list。这可能需要几分钟时间。完成后,您会看到像这样的带项目符号(带星号)的输出:

$ softwareupdate --list
Software Update Tool

Finding available software
Software Update found the following new or updated software:
   * Command Line Tools (macOS High Sierra version 10.13) for Xcode-10.1
        Command Line Tools (macOS High Sierra version 10.13) for Xcode (10.1), 190584K [recommended]

找到引用 Xcode 命令行工具的项目符号。复制整行(星号除外...)。在上述情况下,您将复制:Command Line Tools (macOS High Sierra version 10.13) for Xcode-10.1

然后,运行 安装命令(如 Brendan Shanks 所示)以及您在引号内复制的内容:

softwareupdate -i "Command Line Tools (macOS High Sierra version 10.13) for Xcode-10.1"

我在 MacOS Mojave 版本 10.14.3[=46 上遇到了类似的问题=] 10.3 安装。 真正的问题是,当我安装 Xcode 10.3 时,我删除了“Xcode-beta.app" 然后安装新版本。因此,当我尝试为 C++ 开发安装 CLion 并对其进行配置时,CMake 给了我错误并且更新命令行工具对我不起作用:

softwareupdate -i "Command Line Tools (macOS Mojave version 10.14.3) for Xcode-10.3"

并在终端中向我显示了此响应

Software Update Tool
Command Line Tools (macOS Mojave version 10.14.3) for Xcode-10.3: No such update
No updates are available.

然后我尝试使用以下方法检查 Clang 的版本:

clang --version

响应将我引向了真正的问题,即 Active Developer 路径仍然指向我已经删除的 Xcode 的旧版本。

xcrun: error: active developer path ("/Applications/Xcode-beta.app/Contents/Developer") does not exist

因此,我将活动开发者路径切换到最新的 Xcode 应用安装使用:

sudo xcode-select --switch /Applications/Xcode.app

而且一切都自动运行得很好。

升级到 MacOS Catalina 版本 10.15.* 时,您可以像这样为 xcode 11.3 安装命令行工具:

$ softwareupdate --list
Software Update Tool

Finding available software
Software Update found the following new or updated software:
* Label: Command Line Tools for Xcode-11.3
    Title: Command Line Tools for Xcode, Version: 11.3, Size: 224878K, Recommended: YES,
$ sudo softwareupdate -i "Command Line Tools for Xcode-11.3"

brew给出的答案(使用旧版命令行工具时):

Update them from Software Update in System Preferences or run:
softwareupdate --all --install --force

If that doesn't show you any updates, run:

sudo rm -rf /Library/Developer/CommandLineTools

sudo xcode-select --install

它对我有用,而 softwareupdate --list 没有显示任何内容,softwareupdate --all --install --force 回答了 No updates are available.