xmeta-dev/agent-base
0
1#!/bin/sh2set -e3 4# ============================================================5# Codex CLI 安装脚本6# 安装 OpenAI Codex CLI - 本地运行的编码智能体7# 依赖: curl, ca-certificates8#9# 在部分 Linux 环境(含 Debian 12)上,官方安装器可能错误地将目标10# 三元组检测为 *-linux-musl,但其 SHA256SUMS 文件只有 *-linux-gnu11# 的摘要,导致校验失败。本脚本通过先下载、再修正检测逻辑来解决。12# ============================================================13 14echo ">>> Installing Codex CLI ..."15 16INSTALLER_URL="https://chatgpt.com/codex/install.sh"17INSTALLER_PATH="/tmp/codex-install.sh"18 19echo "==> Downloading official installer from ${INSTALLER_URL} ..."20curl -fsSL -o "${INSTALLER_PATH}" "${INSTALLER_URL}"21 22# 在 Linux 上修正目标三元组检测:23# - 对于 x86_64 / aarch64 Linux, 将 musl → gnu24# - 具体做法是替换 shell 检测 libc 的表达式,强制结果为 gnu25case "$(uname -s)" in26 Linux)27 echo "==> Patching installer for Linux (force gnu target) ..."28 # 替换形如: ldd --version 2>&1 | grep -q musl && echo musl || echo gnu29 # 为直接输出 gnu30 sed -i 's/ldd --version 2>\&1 | grep -qi musl.*/echo "gnu"/i' "${INSTALLER_PATH}"31 # 也处理单引号版本或缺失 -q 的情况32 sed -i 's/grep.*[Mm][Uu][Ss][Ll].*echo "musl"/echo "gnu"/g' "${INSTALLER_PATH}"33 sed -i 's/grep.*[Mm][Uu][Ss][Ll].*echo musl/echo gnu/g' "${INSTALLER_PATH}"34 # 替换任何直接赋值为 musl 的变量35 sed -i 's/="musl"/="gnu"/g' "${INSTALLER_PATH}"36 ;;37esac38 39echo "==> Running patched installer ..."40sh "${INSTALLER_PATH}"41 42echo ">>> Codex CLI installation completed."43 