Sooua
登录
返回文章列表
Codex··5 分钟阅读

安装与环境配置:从零到 codex 命令可用

Codex CLI 是一个基于 Node.js 的 npm 全局包,但其底层核心 Harness 使用 Rust 编写,通过 Node.js 封装暴露给终端。这种混合架构兼顾了 Rust 的性能(文件系统监控、沙盒执行)和 Node.js 的生态(npm 分发、配置管理)。

官方原文索引: CLI Setup / System Requirements / Windows Setup Guide


1. 核心架构与原理解析

Codex CLI 是一个基于 Node.js 的 npm 全局包,但其底层核心 Harness 使用 Rust 编写,通过 Node.js 封装暴露给终端。这种混合架构兼顾了 Rust 的性能(文件系统监控、沙盒执行)和 Node.js 的生态(npm 分发、配置管理)。

安装流程拓扑:

系统要求矩阵:

操作系统支持状态推荐安装方式特殊要求
macOS 12+✅ 完全支持npm / HomebrewApple Silicon 选 arm64 包
Linux (Ubuntu 20.04+)✅ 完全支持npm / 二进制musl 静态链接包兼容性最佳
Windows 11⚠️ 实验性支持Microsoft Store (App)PowerShell 需注意执行策略
WSL2✅ 推荐方案npm项目必须放在 Linux 文件系统 (~/projects)

2. 工程落地与代码示例

环境检查脚本(一键诊断)

#!/bin/bash
# check-codex-env.sh - 环境预检脚本
 
echo "=== Codex 环境检查 ==="
 
# Node.js 版本检查
NODE_VERSION=$(node -v 2>/dev/null | sed 's/v//')
REQUIRED_NODE="22.0.0"
 
if [ -z "$NODE_VERSION" ]; then
    echo "❌ Node.js 未安装"
    echo "   安装方式: curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -"
    exit 1
fi
 
# 版本比较函数
version_ge() {
    [ "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]
}
 
if version_ge "$NODE_VERSION" "$REQUIRED_NODE"; then
    echo "✅ Node.js $NODE_VERSION (>= $REQUIRED_NODE)"
else
    echo "❌ Node.js $NODE_VERSION (需要 >= $REQUIRED_NODE)"
    exit 1
fi
 
# npm 检查
NPM_VERSION=$(npm -v 2>/dev/null)
if [ -n "$NPM_VERSION" ]; then
    echo "✅ npm $NPM_VERSION"
else
    echo "❌ npm 不可用"
    exit 1
fi
 
# Git 检查(Codex 依赖 Git 做 diff/回滚)
GIT_VERSION=$(git --version 2>/dev/null | awk '{print $3}')
if [ -n "$GIT_VERSION" ]; then
    echo "✅ Git $GIT_VERSION"
else
    echo "⚠️ Git 未安装(建议安装用于版本控制)"
fi
 
# 网络连通性检查
curl -sI https://api.openai.com/v1/models >/dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "✅ 可访问 OpenAI API"
else
    echo "⚠️ 无法直接访问 OpenAI API(可能需要代理或配置 OPENAI_BASE_URL)"
fi
 
echo "=== 检查完成 ==="

macOS / Linux 标准安装

# 前置检查:Node.js >= 22
node -v   # 应输出 v22.x.x 或更高
 
# 方式 A:npm 全局安装(推荐)
npm install -g @openai/codex
 
# 方式 B:Homebrew(仅 macOS,安装桌面 App)
brew install --cask codex
 
# 验证安装
codex --version
# 输出示例:codex 0.132.0

Windows 安装策略

# 策略 1:桌面 App(推荐普通用户)
# Microsoft Store 搜索 "Codex" 安装
 
# 策略 2:WSL2(推荐开发者)
wsl --install          # 安装 WSL2 + Ubuntu
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install -g @openai/codex
 
# 策略 3:原生 PowerShell(实验性)
npm.cmd install -g @openai/codex
# ⚠️ 注意:使用 .cmd 后缀避开 PowerShell 执行策略限制
codex.cmd --version

企业内网 / 国内环境配置

# 配置兼容 API 端点(以私有网关为例)
export OPENAI_API_KEY="***"
export OPENAI_BASE_URL="https://api.enterprise-proxy.com/v1"
 
# 或者写入 shell 配置永久生效
echo 'export OPENAI_API_KEY="***"' >> ~/.zshrc
echo 'export OPENAI_BASE_URL="https://api.enterprise-proxy.com/v1"' >> ~/.zshrc
source ~/.zshrc

国内镜像加速安装

# 使用淘宝 npm 镜像加速下载
npm config set registry https://registry.npmmirror.com
npm install -g @openai/codex --registry=https://registry.npmmirror.com
 
# 安装完成后恢复官方源(避免其他包受影响)
npm config set registry https://registry.npmjs.org

诊断工具(v0.131.0+)

# 一键诊断环境、认证、网络连通性
codex doctor
 
# 预期输出:
# ✅ Runtime environment
# ✅ Authentication
# ✅ Network connectivity
# ✅ Config file validity
# ✅ Sandbox configuration

多版本共存管理

# 使用 nvm 管理 Node.js 版本,确保 Codex 运行环境隔离
nvm install 22
nvm use 22
nvm alias default 22
 
# 如果需要在多个 Codex 版本间切换
npm install -g @openai/[email protected]   # 稳定旧版
npm install -g @openai/codex@latest    # 最新版
codex --version

3. 场景深入:复杂环境下的安装实践

场景:企业内网无外网访问

场景:Docker 容器内运行 Codex

# Dockerfile.codex
FROM node:22-alpine
 
# 安装必要依赖
RUN apk add --no-cache git curl
 
# 安装 Codex
RUN npm install -g @openai/codex
 
# 创建工作目录
WORKDIR /workspace
 
# 挂载项目卷和配置文件
VOLUME ["/workspace", "/root/.codex"]
 
ENTRYPOINT ["codex"]
# 构建并运行
docker build -f Dockerfile.codex -t codex-cli .
docker run -it -v $(pwd):/workspace -v ~/.codex:/root/.codex codex-cli

4. 💡 核心避坑与最佳实践 (Takeaways)

  • Windows 项目路径陷阱:WSL2 中访问 /mnt/c/(Windows 盘符)会导致 IO 性能暴跌 10 倍以上,项目必须放在 Linux 文件系统(~/projects
  • npm EACCES 权限错误:不要第一反应 sudo,改用 nvm 管理 Node.js 或修正 npm 全局目录权限:mkdir ~/.npm-global && npm config set prefix '~/.npm-global'
  • PowerShell .ps1 vs .cmd:遇到 "无法加载脚本" 错误时,使用 npm.cmdcodex.cmd 绕过执行策略,或在管理员 PowerShell 执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • 定期更新:Codex 迭代极快,建议每周运行 npm install -g @openai/codex@latest 保持最新
  • 安装前跑预检脚本:把上面的 check-codex-env.sh 纳入团队 onboarding,避免"安装好了却跑不起来"的返工
分享

评论

登录 后参与讨论。

加载中…

相关文章