1.导言
1.如果需要在虚拟机内用 Codex 进行代码编写,那么需要保证各环境已准备就绪,比如 JDK、Maven、nodejs 等,否则生成的代码找不到环境进行编译,当然也可以让 codex 安装。
-
- jdk 安装
- maven 安装,记得配置 settings.xml
sudo apt install maven
mvn -version
2.安装 WSL
3.安装 cc-switch
为了方便使用和管理 AI API Key,使用 cc-switch。在物理机也就是 windows 上安装。下载地址:cc-switch 下载地址
安装完成后,导入供应商即可,本文用的 Codex,会在 C:\Users\xxx\.codex 生成对应的配置(config.toml 和 auth.json)
4.共享代理
WSL 默认是 NAT 网络,物理机开了代理(梯子),WSL 是用不了的。如果买的是中转 api key,一般也不需要配。因为走的中转代理服务器,那边已经能直连外网了。
在物理机新建 .wslconfig 文件,这个文件默认是没有的,需要手动新建
# 具体路径
C:\Users\xxx\.wslconfig
# 内容如下
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
改完后,必须重启 wsl
# 关闭 wsl
wsl --shutdown
# 重进系统
wsl -d Ubuntu-22.04
这三个配置分别做什么
1. networkingMode=mirrored
把 WSL 从默认的 NAT 网络模式切到 mirrored(镜像)模式,让 WSL 更容易吃到 Windows 上的VPN网络能力。效果:
WSL 更像直接使用 Windows 的网络环境
对 VPN、代理、localhost 通信更友好
更容易让 WSL 跟随 Windows 的网络变化
2. dnsTunneling=true
让 WSL 更稳定地使用 Windows 侧的 DNS 能力。效果:
Windows 能解析的域名,WSL 更有机会也能解析
减少 VPN 开启后出现的“Windows 有网,WSL 不能解析域名”问题
3. autoProxy=true
自动把 Windows 的代理设置传给 WSL。效果:
WSL 中很多命令行工具会自动获得代理环境变量
HTTP_PROXY、HTTPS_PROXY、NO_PROXY 等通常会被自动注入
这项对 Codex、npm、pip、curl 之类的工具很重要。
5.安装 nvm
进入 ubuntu,可以搜索 ubuntu 点击进入,也可以通过命令:
wsl -d Ubuntu-22.04
nvm 开源地址:nvm ,这里面有安装方法。
这里使用 curl 方式安装:
# 下载 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
# 导入系统变量,不然执行 nvm 提示命令不存在
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# 查看版本
nvm --version
# 安装 node.js,这里安装版本 20 的稳定版
nvm install 20
# 安装 node.js 成功后校验版本
node -v
# 显示 v20.20.2
6.安装 Codex
注意:安装完成后,首次执行 codex 要退出来,不登录。因为用的 cc-switch 来管理,通过第 6 点来配置,这样后面就不用操心了。
# 安装Codex
npm install -g @openai/codex
# 更新 Codex 到最新
npm i -g @openai/codex@latest
# 初始化 codex
codex
# 初始化完成后,立即 ctrl + c 退出登录配置
7.映射 API Key 配置
不管什么 Codex、Claude Code,一般工作目录都在 C:\Users\xxx\.ooo,.ooo 就是什么 .codex、.claude code。我这里是在 C:\Users\xxx\.codex。
因为使用 cc-switch 来管理 api key,所以需要做软链接链接 C:\Users\xxx\.codex\config.toml 和 C:\Users\xxx\.codex\auth.json。
第 5 点初始化完成后,实际上是没有上述两个文件的。可以通过以下命令查看:
# 进入默认目录
cd ~/.codex
# 查看,这里面是没有 config.toml 和 auth.json 文件的
ls
在 ubuntu 系统下执行:
# 注意替换 xxx
ln -s /mnt/c/Users/xxx/.codex/config.toml ~/.codex/config.toml
ln -s /mnt/c/Users/xxx/.codex/auth.json ~/.codex/auth.json
这时候 config.toml 和 auth.json 就成软链接存在 ~/.codex 目录下了。愉快的玩耍吧!!!!!
