Contents

Homebrew 更新 Claude Code 失败?这是原因和解决方案

如果你在 macOS 上通过 Homebrew 安装了 Claude Code,可能会遇到这个令人困惑的情况:

$ claude --update
Current version: 2.1.81
Update available: 2.1.81 → 2.1.91

To update, run:
  brew upgrade claude-code

于是你照做:

$ brew upgrade claude-code
Warning: Not upgrading claude-code, the latest version is already installed

brew updatebrew cleanupbrew reinstall——全都没用。到底怎么回事?

根本原因:两个发布渠道

运行 brew info claude-code 就能看到答案:

==> claude-code ✔: 2.1.81
...
==> Caveats
This cask tracks the stable release channel. In-app update notifications
default to the latest channel regardless.

Homebrew cask 跟踪的是 stable(稳定版)发布渠道,而 claude --update 默认检查的是 latest(最新版)渠道。这是两条不同的发布线路:

  • Stable:Homebrew 提供的版本——更新频率低,经过更多测试
  • Latest:Claude 内置更新器看到的版本——更新频率高,包含最新功能

Homebrew 说得对:你已经有了最新的稳定版。Claude 也说得对:有一个更新的最新版。它们说的不是同一个东西。

三种解决方案

方案一:消除提示

如果你满意稳定版,让 Claude 停止检查 latest 渠道。运行 claude /config 或编辑 ~/.claude/settings.json

{
  "releaseChannel": "stable"
}

这样 claude --update 只会提示与 Homebrew 一致的稳定版更新。

方案二:切换到 npm

如果你想第一时间获取最新版本:

brew uninstall claude-code
npm install -g @anthropic-ai/claude-code@latest

用 npm 你可以直接控制版本——没有 cask 延迟,没有渠道不匹配。

方案三:等待

稳定版 cask 会跟上的。如果版本差异不影响你,也不需要最新功能,什么都不用做。这个提示只是表面上的。

该选哪个?

  • 方案一:如果你喜欢 Homebrew 管理 CLI 工具,且不需要最前沿的功能
  • 方案二:如果你想要第一时间获得最新版本
  • 方案三:如果你有更重要的事情要忙(大概率是的)

本质教训:当工具的内置更新器和你的包管理器意见不一时,检查它们各自跟踪的发布渠道。通常双方都没错——只是看的是不同的数据源。