如何更新 Xcode 命令行工具?



我正在尝试更新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 --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"

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

我想将命令行工具从版本 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返回/Library/Developer/CommandLineTools/.

似乎问题在于新版本的工具被安装到不同的目录中,xcode-select -r不够聪明,无法找到最新版本。

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

我在安装了Xcode 10.3的MacOS Mojave版本10.14.3遇到了类似的问题。 真正的问题是,当我安装Xcode 10.3时,我先删除了">Xcode-beta.app",然后安装了新版本。因此,当我尝试安装 CLion 进行C++开发和配置它时,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

响应将我引向真正的问题,即活跃的开发人员路径仍然指向我已经删除的旧版本的Xcode。

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

因此,我将活动开发人员路径切换到安装的最新 Xcode 应用程序:

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

一切都像魅力一样自动工作。

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

从"系统偏好设置"中的"软件更新"更新它们或运行:
softwareupdate --all --install --force

如果未显示任何更新,请运行:

sudo rm -rf /Library/Developer/CommandLineTools

sudo xcode-select --install

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

升级到 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"

我用sudo运行了相同的命令,这起到了作用。

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

如果softwareupdate没有看到任何可用的 CLI 工具更新,您可以执行以下操作来诱骗softwareupdate显示它拥有的有关 CLI 工具的所有内容。

# Trick softwareupdate into giving us everything it knows about Xcode CLI tools by
# touching the following file to /tmp
xclt_tmp="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
/usr/bin/touch "${xclt_tmp}"
# run softwareupdate --list --all again to see if there is anything for CLI tools
softwareupdate --list --all

运行上述内容后,如果 Xcode CLI 工具有任何可用的更新,您应该会看到如下所示的内容。

Software Update Tool
Finding available software
Software Update found the following new or updated software:
* Label: Command Line Tools for Xcode-14.0
Title: Command Line Tools for Xcode, Version: 14.0, Size: 687109KiB, Recommended: YES, 
* Label: Command Line Tools for Xcode-14.2
Title: Command Line Tools for Xcode, Version: 14.2, Size: 687573KiB, Recommended: YES, 

更新所有内容

softwareupdate -i -a

最新更新