手机打开 termux 复制粘贴输入
cat > ~/fix_codex.sh << 'EOF'
#!/usr/bin/env bash
# Termux 下修复 / 安装 Codex CLI(cargo 版)
# 目标版本:codex-cli 0.65.0(tag = rust-v0.65.0)
# 全程无需交互,自动安装依赖并安装/升级 codex-cli
set -euo pipefail
CODEX_VERSION="0.65.0"
CODEX_TAG="rust-v${CODEX_VERSION}"
echo "============================================================"
echo "[fix_codex] Termux Codex CLI 安装 / 升级脚本"
echo "目标版本:codex-cli ${CODEX_VERSION}(tag: ${CODEX_TAG})"
echo "============================================================"
echo
echo "[1] 打印环境信息"
echo "HOME=$HOME"
echo "SHELL=${SHELL:-unknown}"
echo "CARGO_HOME=${CARGO_HOME:-~/.cargo(默认)}"
echo "PATH=$PATH"
echo
# 计算 cargo bin 目录
BIN_DIR="${CARGO_HOME:-$HOME/.cargo}/bin"
mkdir -p "$BIN_DIR"
echo "[2] 列出 ${BIN_DIR} 当前内容(如果有)"
ls -la "$BIN_DIR" || true
echo
echo "[3] 尝试运行当前已安装的 codex(如果存在)"
if [ -x "$BIN_DIR/codex" ]; then
echo ">> 绝对路径运行当前 codex:"
"$BIN_DIR/codex" --version || true
else
echo ">> ${BIN_DIR}/codex 当前不存在,将进行全新安装"
fi
echo
echo "[4] 安装基础依赖(幂等,可重复执行,无需手动确认)"
pkg update -y || true
pkg upgrade -y || true
pkg install -y rust git clang make pkg-config openssl openssl-tool
echo
echo "[5] 为 Termux 写入 cargo profile(profile = termux)"
mkdir -p "$HOME/.cargo"
cat > "$HOME/.cargo/config.toml" <<'EOCARGO'
[profile.termux]
inherits = "release"
lto = "off"
codegen-units = 8
opt-level = "s"
EOCARGO
echo ">> 已写入 ~/.cargo/config.toml"
echo
echo "[6] 确保当前 shell PATH 包含 ~/.cargo/bin"
export PATH="$HOME/.cargo/bin:$PATH"
echo "当前 PATH: $PATH"
echo
echo "[7] 使用 cargo 安装 / 升级 Codex CLI 到 ${CODEX_TAG}"
echo ">> 执行:cargo install --git https://github.com/openai/codex --tag ${CODEX_TAG} codex-cli --force --locked --profile termux"
cargo install --git https://github.com/openai/codex --tag "${CODEX_TAG}" codex-cli --force --locked --profile termux
echo
echo "[8] 确保 PATH 永久包含 ~/.cargo/bin(写入 .bashrc / .profile,自动去重)"
touch "$HOME/.bashrc" "$HOME/.profile"
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' "$HOME/.bashrc" 2>/dev/null || printf '\n# Cargo bins\nexport PATH="$HOME/.cargo/bin:$PATH"\n' >> "$HOME/.bashrc"
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' "$HOME/.profile" 2>/dev/null || printf '\n# Cargo bins\nexport PATH="$HOME/.cargo/bin:$PATH"\n' >> "$HOME/.profile"
# 刷新当前 shell 的可执行缓存
hash -r
echo ">> PATH 已写入 .bashrc / .profile 并刷新 hash"
echo
echo "[9] 再次验证 codex 安装情况"
echo "type -a codex 输出:"
type -a codex || true
echo
echo "which codex 输出:"
which codex || true
echo
if [ -x "$BIN_DIR/codex" ]; then
echo ">> 绝对路径运行:${BIN_DIR}/codex --version"
"$BIN_DIR/codex" --version || true
fi
echo
echo ">> PATH 方式运行:codex --version"
if command -v codex >/dev/null 2>&1; then
codex --version || true
else
echo "!! 警告:当前 shell 中未找到 codex 命令,请重新打开 Termux 或执行:"
echo " export PATH=\"$HOME/.cargo/bin:\$PATH\""
fi
echo
echo "============================================================"
echo "[✓] Codex CLI 安装 / 升级步骤执行完毕(目标版本:${CODEX_VERSION})"
echo " 若上面 codex --version 输出中包含 ${CODEX_VERSION} 即表示安装成功。"
echo " 之后可直接运行:"
echo " codex --sandbox danger-full-access --ask-for-approval never"
echo "======================================================
termux复制粘贴
======"
echo
EOF
chmod +x ~/fix_codex.sh
~/fix_codex.sh
- 打开 Termux
- 在命令行输入:
termux-setup-storage
- 打开 Material Files GitHub - zhanghai/MaterialFiles: Material Design file manager for Android
- 左上角菜单(≡)→ 添加储存空间 / Add storage
- 选择 外部储存空间(External Storage)(会跳系统文件选择器)
- 在系统文件选择器左侧栏里找到 Termux(你之前看到的 “TMS/Termux” 图标)
- 点 Termux → 点底部 使用此文件夹(Use this folder) → 允许
完成后:
- Material Files 侧边栏会出现一个 Termux 入口
- 进去看到的就是 Termux 私有目录内容(如 home)
电脑上的文件 C:\Users\user.codex\auth.json 放在手机Termuxhome下面的.codex