macOS ARM Codex 安装

目录

  1. 环境基础说明
  2. 清华Homebrew镜像一键配置脚本(M系列ARM)
  3. Codex 完整卸载脚本(无自动更新、echo输出流程)
  4. Codex 完整安装脚本(带下载进度、跳过brew update、清华源常驻)
  5. CC-Switch 配置 DeepSeek 适配 Codex 完整步骤
  6. 全会话报错、原因、对应解决方案

一、环境基础

  • 设备:macOS Apple Silicon M系列 ARM
  • Homebrew 源:清华镜像(外网高峰Git拉取排队Waiting in queue
  • 核心痛点:
    1. brew install/uninstall 默认触发brew update拉取Git仓库,清华外网限流排队;
    2. brew cask 默认隐藏下载进度,无法直观查看下载状态;
    3. Codex 原生调用OpenAI /v1/responses 接口,DeepSeek不兼容,直连会404;
    4. 中科大旧镜像地址失效,无法使用。

二、清华Homebrew镜像一键配置脚本

功能说明

  1. 自动清空旧阿里/USTC镜像环境变量;
  2. 写入完整清华五件套镜像(brew/core/cask/bottle/api);
  3. 仅替换存在的tap仓库远程地址,规避目录不存在报错;
  4. 不全局关闭自动更新,仅安装卸载时临时屏蔽。
zsh 复制代码
# 清空历史所有HOMEBREW镜像环境变量
sed -i '' '/export HOMEBREW_/d' ~/.zshrc
# 写入完整清华镜像配置
cat >> ~/.zshrc <<'EOF'
# 清华Homebrew全套镜像配置
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_CASK_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
EOF
# 重载shell配置生效
source ~/.zshrc
# 替换主brew仓库远程(必存在)
git -C "$(brew --repo)" remote set-url origin "$HOMEBREW_BREW_GIT_REMOTE"
# 存在core仓库才替换,避免目录不存在报错
CORE_PATH=$(brew --repo homebrew/core)
if [ -d "$CORE_PATH" ]; then
  git -C "$CORE_PATH" remote set-url origin "$HOMEBREW_CORE_GIT_REMOTE"
fi
# 存在cask仓库才替换,避免目录不存在报错
CASK_PATH=$(brew --repo homebrew/cask)
if [ -d "$CASK_PATH" ]; then
  git -C "$CASK_PATH" remote set-url origin "$HOMEBREW_CASK_GIT_REMOTE"
fi
echo "清华Homebrew镜像配置完成,brew安装软件自动走清华加速"
echo "如需手动更新brew:unset HOMEBREW_NO_AUTO_UPDATE && brew update -v"

三、Codex 完整卸载脚本

脚本功能

  1. 临时关闭Homebrew自动更新,规避清华Git镜像排队;
  2. 登出Codex、清除钥匙串密钥、卸载npm全局CLI;
  3. 删除二进制、App本体、全部缓存/配置/日志;
  4. 清理zshrc内Codex相关环境变量;
  5. 全程echo输出操作流程,无#注释。
zsh 复制代码
export HOMEBREW_NO_AUTO_UPDATE=1

echo "开始执行:退出Codex登录并清除钥匙串授权信息"
codex auth logout 2>/dev/null
security delete-generic-password -s "openai-codex" 2>/dev/null

echo "开始执行:卸载npm全局Codex CLI工具并清理npm缓存"
npm uninstall -g @openai/codex 2>/dev/null
sudo npm uninstall -g @openai/codex 2>/dev/null
npm cache clean --force 2>/dev/null

echo "开始执行:删除手动安装的codex二进制程序文件"
sudo rm -f /opt/homebrew/bin/codex /usr/local/bin/codex 2>/dev/null

echo "开始执行:brew卸载Codex桌面应用,清理无用依赖与缓存"
brew uninstall --cask codex 2>/dev/null
brew autoremove 2>/dev/null
brew cleanup 2>/dev/null

echo "开始执行:删除Applications目录下Codex客户端本体"
rm -rf /Applications/Codex.app 2>/dev/null

echo "开始执行:清理Codex全部本地配置、缓存、日志文件"
rm -rf ~/.codex
rm -rf ~/.config/codex ~/.cache/codex ~/.local/share/codex ~/.local/state/codex
rm -rf ~/Library/Application\ Support/Codex ~/Library/Caches/Codex
rm -rf ~/Library/Logs/Codex ~/Library/Preferences/com.openai.codex.plist

echo "开始执行:删除zshrc中Codex相关环境变量并重载配置"
sed -i '' '/OPENAI_API_KEY/d' ~/.zshrc
sed -i '' '/CODEX/d' ~/.zshrc
source ~/.zshrc

echo "=============================="
echo "Codex 卸载&残留清理全部完成"
echo "=============================="
echo "正在校验是否存在残留文件:"
echo "1. 检查codex命令是否残留:"
which codex
echo "2. 检查应用目录是否存在Codex.app:"
ls /Applications | grep Codex
echo "3. 检查家目录隐藏配置文件夹:"
ls ~ | grep .codex

四、Codex 完整安装脚本

脚本功能

  1. 临时关闭自动更新,不触发brew update排队;
  2. 开启curl可视化下载进度条;
  3. -v输出完整安装日志,复用已配置的清华镜像;
  4. 安装完成输出版本、启动、登录命令。
zsh 复制代码
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_CURL_ARGS="-# -L"

echo "当前使用清华镜像源,跳过brew自动更新,强制开启下载进度条安装Codex"
brew install --cask codex -v

echo "=============================="
echo "Codex 安装完成"
echo "=============================="
echo "当前codex版本信息:"
codex --version
echo "启动桌面图形客户端命令:codex app"
echo "打开终端交互工具命令:codex"
echo "登录OpenAI账号命令:codex auth login"

五、CC-Switch 配置 DeepSeek 适配 Codex(解决 /responses 404)

核心原理

Codex 原生请求OpenAI专属 /v1/responses 接口,DeepSeek仅支持标准 /v1/chat/completions,直连DeepSeek会返回404;CC-Switch本地路由做协议转换,拦截并重写请求路径。

  1. 添加 DeepSeek 供应商
    • CC-Switch 切换至「Codex」标签 → 右上角「+添加供应商」→ 预设选择 DeepSeek
    • 填入 DeepSeek sk-xxx API Key,请求地址保持默认 https://api.deepseek.com
    • 高级设置:开启本地路由映射(必填),接口自动转为 OpenAI Chat Completions
    • 模型映射:deepseek-v4-flash / deepseek-v4-pro,保存
  2. 开启全局路由转发
    • CC-Switch 设置 → 路由页面:打开「本地路由总开关」+「Codex应用路由开关」,保存
  3. 启用供应商并重置 Codex 配置
    • 主界面选中DeepSeek,点击启用,状态变为 Active
    • 终端执行 codex auth logout 清除旧直连配置
  4. 验证配置生效
zsh 复制代码
cat ~/.codex/config.toml | grep base_url

正常输出本地代理地址:http://127.0.0.1:15721/v1

终端执行codex切换模型即可正常对话,无404报错

六、全会话报错、原因、解决方案汇总

报错信息 根因 解决方案
brew update 卡在 Fetching /opt/homebrew... 清华Git镜像外网并发限流,拉取仓库阻塞 1. 安装/卸载脚本增加export HOMEBREW_NO_AUTO_UPDATE=1跳过自动更新; 2. 需手动更新时临时切官方Git源:HOMEBREW_BREW_GIT_REMOTE=https://github.com/Homebrew/brew brew update -v
remote: Waiting in queue... (Position: 1xxx) 清华Git镜像外网用户排队限流 全程使用HOMEBREW_NO_AUTO_UPDATE=1,彻底屏蔽自动更新逻辑
fatal: repository 'https://mirrors.ustc.edu.cn/misc/brew.git/' not found USTC旧镜像路径携带/misc/,地址失效 放弃USTC源,使用文档内清华镜像配置脚本
复制脚本提示 zsh: command not found: # 注释#单独分行被识别为命令 采用无注释、echo输出流程的脚本
fatal: cannot change to '/opt/homebrew/Library/Taps/xxx': No such file or directory 新机未自动拉取core/cask tap,目录不存在 清华源配置脚本增加目录判断,仅存在时执行git远程替换
brew install codex 下载无进度展示 Homebrew默认隐藏curl下载进度 安装脚本增加export HOMEBREW_CURL_ARGS="-# -L"展示可视化进度条
校验完93.8MB安装包后长时间停滞不动 1. 后台解压tar包; 2. macOS Gatekeeper联网公证App签名阻塞 1. 新开终端`ps aux
unexpected status 404 Not Found, url: https://api.deepseek.com/responses Codex调用OpenAI专属/responses接口,DeepSeek不支持该路由 使用CC-Switch本地路由协议转换,禁止Codex直连DeepSeek官网,完整配置见第五节