跳到主要内容
Agent 实践室CODEX STUDY CLUB
返回学习路线
查看全部 14 篇教程 当前第 10 章
开发者入门第 10 章 / 共 14 章

安装 Codex CLI:排查脚本 404、找不到命令与登录失败

用不执行安装脚本的请求检查、命令路径和版本定位失败阶段,再分别验收安装、登录与只读任务。

内容核对

CLI 适合已经愿意使用终端的读者。安装程序能运行、账号能登录、项目任务能完成,是三个独立的检查点,按顺序排查更容易定位问题。

如果你已经遇到报错,本章先帮你产出一份“失败阶段 + 当前证据 + 下一步”的记录。不要在脚本还没下载成功时反复登录,也不要因为任务失败就立刻卸载。

先判断错误停在哪一层

你看到的现象 先查什么 还不能下的结论
install.sh 返回 HTTP 404 当前安装地址的响应、发生时间与最终 URL 不能直接判断账号、项目权限或所有用户都故障
DNS、TLS 或连接超时 是否取得 HTTP 响应,保留具体错误 没有响应不等于服务器返回 404
codex: command not found 安装是否成功、当前终端 PATH 和命令路径 命令找不到不等于登录失效
更新后版本没变化 当前命中的文件是否仍是旧副本 不先混装另一个渠道或删除配置
版本可读,但登录或任务失败 分别记录认证和任务阶段的结果 显示版本不代表账号、网络和项目都就绪

最近的 404 报告说明了什么

miDeb 的 #56254 于 2026-10-22 20:25 UTC 报告安装脚本 404,随后称自己端已恢复并关闭;该帖之后仍有其他用户报告失败。saccharide 的 #56607 发布于 10-23 23:56 UTC(北京 10-24 07:56),tzador 的 #56616 发布于 10-24 00:29 UTC(北京 08:29),也报告安装或更新时请求同一脚本失败。

10-26 后续(本站同日核对):项目贡献者 etraut-openai 于 01:29 UTC(北京 09:29)说明此前为临时路由问题、现在应已恢复,并关闭 #56616。这是项目侧的新解释,本站没有复现原作者环境或独立确认根因;#56607 仍 open 也不能单独证明当前故障仍在持续。

本站只读 GET 的三个日期样本如下,均没有执行脚本:

采样日期(北京) install.sh install.ps1 能确认的范围
10-24 HTTP 200 / exit 0 HTTP 200 / exit 0 当次响应可取得
10-25 HTTP 000 / exit 28 HTTP 000 / exit 28 连接超时,没有取得响应
10-26 20:00 HTTP 200 / exit 0 HTTP 200 / exit 0 当次下载请求成功,未执行安装

这些样本不能推导全天可用性或所有网络都已恢复,也没有证明登录和项目任务成功。Issue 关闭或他人恢复后,先检查你此刻的响应;不把普通评论中的替代脚本当作官方修复方案。

看见“已恢复”后,下一步怎么选

  • 你的请求仍是 404:保留新的发生时间、官方地址和最终 URL,连同旧样本分开记录;一次恢复说明不能覆盖你现在的失败证据。
  • 没有 HTTP 响应:按具体 DNS、TLS 或连接错误继续定位;不要把 HTTP 000 填成 404,也不要因旧帖已关闭而删除当前日志。
  • 这次是 200:只把“下载响应”标为通过。准备安装或更新时仍确认原有渠道,再依次验收命令路径、版本、登录与只读项目任务;没有执行的阶段继续写“未执行”。

可直接使用下方只读请求和文末记录表。验收目标是明确现在停在哪一阶段,不是把一条“恢复”消息变成安装成功结论。

只检查下载,不执行脚本

前提是终端已有 curl。下面使用 GET、跟随跳转并丢弃响应正文,不把结果交给 shell 执行,也不安装或更新软件。它仍会发出网络请求。

macOS / Linux:

curl -sS -L --connect-timeout 8 --max-time 20 -o /dev/null -w 'HTTP %{http_code}\nURL %{url_effective}\n' https://chatgpt.com/codex/install.sh
echo "curl_exit=$?"

Windows PowerShell(使用 curl.exe,避免与其他同名命令混淆;下面是诊断示例,本站未在 Windows 执行):

curl.exe -sS -L --connect-timeout 8 --max-time 20 -o NUL -w "HTTP %{http_code}\nURL %{url_effective}\n" https://chatgpt.com/codex/install.ps1
Write-Output "curl_exit=$LASTEXITCODE"

两个代码块各自逐行执行,紧接着读取退出码。这里刻意没有使用 --fail:curl 退出 0 也可能收到 HTTP 404,必须同时看 HTTP 状态。HTTP 200 只说明这次请求拿到了响应,不证明脚本内容正确或安装成功;HTTP 000 配合非零退出码时,按 DNS、TLS、连接或超时错误继续查,不能写成 404。

10-24 与 10-26 的成功样本中,官方地址跳转到 releases.openai.com/codex/ 下对应脚本;10-25 的超时没有取得最终响应。跳转目标可能变化,记录实际值并回到官方页面核对,不把本站保存的某次最终地址硬编码成长期替代入口。

若再次得到 404,保留这次证据,查看官方安装页和对应原帖的新进展。只做有时间间隔、次数有限的复查;若准备改用官方列出的 npm 或 Homebrew,先确认现有安装来源和环境前提,再选一个渠道,不把多个安装命令依次全跑。

1. 选择与你的环境匹配的安装方式

官方安装页提供 macOS/Linux、Windows、npm 和 Homebrew 选项。不要把 Node.js 或 WSL2 当作所有方式的统一前提;按照你选择的安装页签准备环境。

macOS 或 Linux 可使用官方独立安装器:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

这是下载并执行安装脚本的命令,只应使用官方地址,并在自己有权安装软件的环境中执行。更新独立安装器版本也使用这条命令。

Windows 用户打开官方安装页的 Windows 选项,按该页当前命令操作;已有 npm 或 Homebrew 管理习惯的读者可以选择对应页签。后续更新也沿用同一安装方式,避免机器上多个副本造成混淆。

2. 确认终端能找到程序

安装完成后重新打开终端,运行:

codex --version

看到版本信息只说明当前终端能找到 CLI。如果提示命令不存在,先检查安装输出中的失败位置和 PATH 设置;不要通过重复更换安装方式掩盖原来的错误。若机器上已有多个副本,先确认当前终端实际使用哪个,再决定更新方式。

macOS / Linux 的常见 shell 可用 command -v codex 查看当前命中路径、type -a codex 列出同名入口;Windows PowerShell 可用 Get-Command codex -All 查看解析结果。这些只读检查用于比较更新前后是否命中同一副本。路径本身不证明它来自哪个包管理器,也不要把带用户名的绝对路径直接公开。

命令挂起、被终止或没有返回版本时,就记录“版本未取得”,停止后面的登录与任务练习。不要由“机器上有这个命令”推断它已正常运行。

这一步不需要输入 API Key,也不能证明账号和网络已就绪。

3. 登录并检查状态

codex login
codex login status

ChatGPT 登录会打开浏览器;完成后回到终端看结果。CLI 也支持 API Key 登录,但 API 用量使用独立的 API 计费,不能把它当成已包含在 ChatGPT 订阅里。账号方式与第三方配置的区别见账号与套餐和API 配置。

不要将密钥、登录缓存或完整认证日志贴进 Issue。登录失败时,记录所用方式、失败阶段和脱敏报错;先解决认证问题,再运行实际任务。

4. 进入自己的项目

先在终端进入你准备练习的目录,再启动:

codex

第一条请求只读了解项目:

请先阅读项目说明和 AGENTS.md,概括目录结构与可用检查命令。
不要修改文件、安装依赖、提交或发布。
若资料不足,明确列出缺少的依据。

验收时核对它提到的文件是否存在,命令是否来自当前项目。工具安装成功但项目回复失败时,保留错误,把网络、权限和项目环境分别排查;无需先卸载重装。

下一章用一个小改动练习CLI 的第一轮工作。

带走一份可以继续排查的记录

把下面的表复制到自己的记录中;没有执行的阶段写“未执行”,不要用上一阶段的成功代填。公开分享前去掉用户名、令牌、Cookie 和认证缓存。

发生时间与时区:
系统与终端:
原有安装渠道:独立安装器 / npm / Homebrew / 未确认
失败阶段:下载 / 安装执行 / 命令解析与版本 / 登录 / 项目任务
实际命令与脱敏报错:
下载 HTTP 状态、curl 退出码、最终公开 URL:
当前命令路径(公开时脱敏)、版本:
登录状态:已核对 / 失败 / 未执行
项目任务与可核对产物:
下一步最小检查:
仍未验证的事项:

若需要请 Codex 帮忙解读,先提供脱敏记录,再使用:

只分析这份安装失败记录,不执行安装、更新、卸载或登录。
先指出失败在哪一阶段,以及支持判断的原始结果。
区分已经确认的事实、可能原因与缺失证据;不要把 HTTP 404 解释成权限不足。
只给一个最小的只读检查,写出预期看到什么,以及什么结果意味着需要停止。
没有验证恢复前,不说问题已经修好。

验收这份记录:别人能辨认失败阶段、复查实际命令,并看出哪些环节还没运行。本站的 HTTP 检查、文章页面和站内检索验证不等于安装恢复实验;Windows、账号登录、CLI 实际任务与读者收益仍未验证。

本文基于 CodexGuide 的 MIT 授权内容收录,原作者 canghe。