跳转到内容

env: node: No such file or directory — Codex 更新失败

Quick fix

从 Dock/Finder 启动 CC Switch 时 GUI PATH 缺少 Homebrew 目录,升级到 v3.18.0+ 已修复。

报错原文
env: node: No such file or directory
env: node: No such file or directory

当 CC Switch 从 Finder/Dock 启动时,macOS GUI 进程继承的 PATH 仅为 /usr/bin:/bin:/usr/sbin:/sbin,不包含 /opt/homebrew/bin。Codex 和 npm 的入口脚本使用 #!/usr/bin/env node shebang,即使 CC Switch 用绝对路径调用 /opt/homebrew/bin/codex 或 /opt/homebrew/bin/npm,env 仍需通过 PATH 解析 node,而 GUI PATH 中没有 node,导致报错。该问题在 Homebrew 安装 Node + Codex 的 Apple Silicon macOS 上最为常见,nvm/fnm/mise 等版本管理器同理。v3.18.0 的修复方式:所有锚定 npm 调用(含 Codex 更新/修复路径)在执行前先 prefix PATH=<npm 的同级 bin 目录>:$PATH,确保 npm 和 shebang 解析到的 node 来自同一安装目录,不再依赖 GUI 进程的 PATH。

  1. 升级 CC Switch 到 v3.18.0 或更高版本,该版本在所有锚定 npm 调用前自动补齐 PATH。

    # 无需手动修改配置文件,升级 cc-switch 即可
  2. 如果暂时无法升级,可从已包含 /opt/homebrew/bin 的终端启动 CC Switch 作为临时绕过方案:在 Terminal 中执行 open -a "CC Switch" 或直接运行二进制。

    # 临时绕过:从 Terminal 启动而非 Finder/Dock
  3. 升级后在 Settings / About 中找到 Codex 本地工具卡片,重新点击更新/升级,确认不再报错。

    # 无配置变更
ToolCodex
Version3.16.2 - 3.16.4(受影响),v3.18.0 修复
PlatformsmacOS
为什么我在终端里 codex --version 正常,但从 Dock 启动 CC Switch 更新就失败?
macOS GUI 应用从 Finder/Dock 启动时继承的 PATH 不包含 /opt/homebrew/bin,而 codex/npm 的 shebang 脚本 #!/usr/bin/env node 依赖 PATH 来定位 node 运行时。终端是 login shell 会加载 shell rc 文件补齐 PATH,GUI 进程不会。
升级到 v3.18.0 后还需要手动设置 PATH 吗?
不需要。v3.18.0 在每次锚定 npm 调用前自动 prefix PATH=<npm 同级 bin 目录>:$PATH,npm 和 node 都从同一安装目录解析,与 GUI 进程 PATH 无关。
Windows 上 Codex 也显示「无法运行」是同一个问题吗?
不是。Windows 上 npm 全局安装 Codex 会生成无后缀 POSIX shim(codex)、codex.cmd、codex.ps1 三个文件,CC Switch 旧版把无后缀 shim 误判为默认入口并标记不可用。这是另一个问题,已在 v3.16.5 修复,探测逻辑会优先识别 .cmd/.exe 兄弟文件。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。