修复 Homebrew Codex 二进制文件冲突 | AI生成和翻译

Home 2026.02

Question: 为什么在 macOS 上执行 brew install --cask codex 会失败,并提示错误 “It seems there is already a Binary at ‘/opt/homebrew/bin/codex’“?该如何修复?

Answer:

出现这个错误的原因是 Homebrew 检测到在 /opt/homebrew/bin/codex 路径下已经存在一个 codex Binary(这是 Apple Silicon Mac 上 Homebrew 链接 Binary 的标准位置)。为了避免意外破坏你当前的配置,Homebrew 的 Cask 安装程序会拒绝覆盖或替换该处已有的文件。

在你的案例中,最常见的原因(考虑到你之前的 codex --version 显示的是 codex-cli 0.36.0)是你 之前通过 npm 安装过 Codex (npm install -g @openai/codex)。这会将它的 Binary 放置在全局 npm bin 目录下(在 Apple Silicon 上,如果使用 Homebrew 安装的 Node,通常就是 /opt/homebrew/bin;或者在 ~/.npm-global/bin 中并带有 Symlink)。随后当你尝试使用 Homebrew Cask 方式安装时,由于两种方法都试图在同一路径管理同一个命令名 (codex),从而产生了冲突。

如何确认当前的安装来源

执行:

which codex

推荐的解决方案(任选其一)

  1. 继续使用 npm(如果你更倾向于 npm 生态,这是最简单的)
    • 首先卸载尝试安装的 Cask(如果存在部分安装):
      brew uninstall --cask codex
      
    • 将现有的 npm 版本更新到最新(截至 2026 年 2 月,版本通常在 0.9x 范围内):
      npm install -g @openai/codex@latest
      codex --version   # 应该显示类似 0.98.0 或更高版本
      
  2. 切换到 Homebrew Cask(许多 macOS 用户的推荐做法,可避免 npm/Node 依赖)
    • 首先,移除冲突的 Binary(极有可能来自 npm):
      npm uninstall -g @openai/codex
      
      • 如果该 Binary 仍然存在,手动删除 Link:
        rm /opt/homebrew/bin/codex
        

        (注意:仅当你确定它来自 npm 且不再需要时才执行此操作。)

    • 现在重试 Cask 安装:
      brew install --cask codex
      
    • 安装应该会成功,并在 /opt/homebrew/bin/codex 放置一个新的 Binary。
    • 验证:
      codex --version   # 预期会看到一个较新的基于 Rust 的版本,如 0.98.0+
      
  3. 彻底清理并重新通过一种方式安装
    • 卸载两者:
      brew uninstall --cask codex   # 如果未安装则忽略
      npm uninstall -g @openai/codex
      rm -f /opt/homebrew/bin/codex   # 如果 Symlink/Binary 仍在,强制移除
      
    • 然后通过你首选的方法安装(npm 或 brew –cask)。

备注:

参考资料:


Back Donate