Claude Code 在 Termux 需 proot 安装 (Claude Code on Termux via proot)
一句话结论
在旧安卓手机(Termux)上跑 Claude Code 2.x,必须用 proot-distro 起一个 Debian(aarch64/glibc)容器,在里面装 claude——因为 claude-code 2.x 是原生二进制,官方只发布 darwin/linux/win32 平台包,没有 android 目标。
前因后果(为什么装 proot)
起因
想在手机上(荣耀 TNA-AN00, Termux 小服务器)跑 Claude Code,接入第三方 Anthropic 兼容上游(如 DeepSeek 的 api.deepseek.com/anthropic)。
直接装 Termux 失败
npm i -g @anthropic-ai/claude-code 只装上 wrapper;跑 claude --version 报:
Error: claude native binary not installed.根因(postinstall 输出)
Native binaries for linux-arm64-android are not available on this release channel.claude-code 2.x 的 native 包(@anthropic-ai/claude-code-<platform>)只有 darwin-* / linux-* / win32-*,没有 android。Termux 的 node 平台是 linux-arm64-android,匹配不到 → 不装 native → claude 起不来。
解决
用 proot-distro 起 Debian 容器(glibc aarch64 Linux,平台被认成 linux-arm64),在里面:
apt+ nvm 装 node(v22.13)+ npm- 官方
curl -fsSL https://claude.ai/install.sh | bash装 claude → native 二进制可用
现状
- claude 在 proot
/usr/local/bin/claude(2.1.241) - 配置读 proot 的
/root/.claude/settings.json(prootHOME=/root),不是 Termux 的~/.claude - 接 DeepSeek anthropic 端点,直连验证
claude -p "..."→pong正常 - 备注:这台机 proot 是早前某次会话由一个智能体装好的;cc-switch-web(src-tauri)也是 proot 里编译的
关键坑
- Termux 直装 claude-code 2.x 装不上(native 无 android 目标),这是硬限制,不是网络/权限问题。
- claude 读 proot 的配置:
/root/.claude/settings.json(proot HOME=/root),不是 Termux 的~/.claude/。要改配置得进 proot。 第三方模型名不被认:
deepseek-v4-*不在 claude 已知模型列表,启动报unrecognized_model告警 + 按 200k 强制窗口。消除办法(任一):CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1— 让 claude 信任 API 返回的窗口,不告警(最省心)CLAUDE_CODE_MAX_CONTEXT_TOKENS=<真实值>— 显式声明窗口modelOverrides精确映射- ⚠️
[1m]模型名后缀只对 claude 已认的模型生效,对未知模型无效。
ANTHROPIC_MODEL是顶层主模型,决定当前会话默认模型;四档ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU,FABLE}_MODEL是"各 tier 的映射表",别把 ANTHROPIC_MODEL 当成兜底模型。
使用方式
proot-distro login debian # 进入 proot Debian
claude # 交互 TUI
# 或 headless
claude -p "prompt"相关
- android-termux-server-limits — 这台机的服务栈与限制(bootloader 锁死、Termux 限制、AI-6767)
本文归档于个人知识库 · 领域:CS & AI · 模块:04 Project_CS_AI/LLM