51

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

4

7 回答 7

72

对于未来的旅行者,这是一种与版本无关的方法。首先,运行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"
于 2018-11-18T19:25:37.973 回答
23

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

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

xcode-select --install

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

xcode-select -p返回/Applications/Xcode.app/Contents/Developer,并clang --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不够聪明,无法找到最新版本。

于 2017-12-09T05:46:26.183 回答
9

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

于 2017-03-01T17:36:29.500 回答
7

我在安装了Xcode 10.3的MacOS Mojave 版本 10.14.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 App:

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

一切都像魅力一样自动运行。

于 2019-10-22T22:45:26.907 回答
3

升级到 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"
于 2020-01-12T13:27:22.503 回答
2

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

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

于 2017-03-01T17:52:00.250 回答
0

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.

于 2022-02-15T12:55:56.083 回答