安装脚本 2002 报错?用 TaoToken 让 Codex 查 /tmp

📅 发布时间:2026/9/18 11:20:19
安装脚本 2002 报错?用 TaoToken 让 Codex 查 /tmp
报错 2002、日志里跟着一行Cannot mkdir: No space left on device用 VS Code 或 Trae 连远程主机时卡在这个位置基本可以先把「网络不通」这个怀疑放到一边——多数情况下是远程主机的 /tmp 已经写不进去了。这篇写的是我走通的一条排障路径先在 TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_end创建一把 API Key把 Codex 的 Base URL 填成https://taotoken.net/api再把「无法在远程主机上安装 vscode/Trae 服务器。安装脚本异常终止2002」和df -h的输出一起贴进对话让 Codex 把排查顺序、要敲哪些命令、哪些条目不能碰讲清楚。先交代分工Codex 在这条链路里只做两件事读懂报错、生成命令并解释命令的输出。真正在远程主机上敲df、lsof、find的是你自己TaoToken 在这一步也只是一个填进配置文件的 Base URL 和一把 Key它不会去连你的服务器更不会替你在远端执行任何东西。把这条边界记住后面看 Codex 给的命令清单时你就知道每一条都需要自己贴回 SSH 会话里跑一遍再把结果贴回来。报错链条本身不复杂。远程扩展服务器在主机上要经历上传安装脚本、解压、创建临时目录、搬到用户目录、拉起服务端进程这几步中间好几步都落在 /tmp。宿主机 /tmp 写不进去的时候mkdir直接失败脚本以非零状态退出客户端拿不到细粒度的失败原因就统一包装成「安装脚本异常终止2002」。想通这一层方向就固定了先释放 /tmp再验证能不能连上而不是去反复重装扩展或者改 SSH 参数。1. 2002 与 mkdir 失败先把报错链条对齐1.1 「安装脚本异常终止2002」说的是哪一步失败VS Code Remote-SSH 和 Trae 的远程连接本质都是往远端塞一个 server 程序然后起进程。客户端先上传一段安装脚本脚本在远端解压出 server 本体先落到 /tmp 这类临时位置再搬到~/.vscode-server或~/.trae-server之类的目录最后拉起真正的服务端。2002 这个数字并不是 /tmp 专用的错误码它表示「安装脚本没有正常跑完」而脚本为什么没跑完要看同一段日志里紧挨着的几行。所以看到 2002 的第一件事不是搜错误码而是把日志完整段落翻出来看有没有Cannot mkdir、Wrote only 9216 of 10240 bytes这种带文件系统字样的行。只要有方向就从「连接问题」切到「远程主机磁盘问题」。这一步不需要任何工具肉眼扫一遍日志即可后面交给 Codex 的是原文不是你转述后的猜测。1.2 No space left on device 要分容量和 inode 两种情况「没空间」听起来只有一种实际有两种。一种是块空间耗尽df -h一眼能看出来另一种是 inode 耗尽容量还剩一大截但已经创建不出新文件mkdir照样报No space left on device。VS Code 和 Trae 的安装过程会生成大量小文件小文件多起来正是 inode 消耗的大户所以只看df -h有可能被误导。排查时的顺序建议是先df -h /tmp看剩余容量再df -i /tmp看 inode 使用率。两个输出都留着一起贴给 Codex让它判断到底卡在哪一种。判断清楚再动手删比不管三七二十一先删一通要安全得多尤其是在多人共用的跳板机上。现象组合更可能的原因先看的命令2002 Cannot mkdir df 剩余为 0/tmp 块空间满df -h /tmp2002 Cannot mkdir df 还有空间inode 用尽或配额限制df -i /tmp2002 日志里没有 mkdir 字样脚本被中断、权限不足看日志完整段落2. 让 Codex 读日志config.toml 里把 Base URL 指到 TaoToken2.1 先在 TaoToken 创建 API Key再填模型 ID准备材料只有两样一把 Key一个模型 ID。打开 TaoToken 注册登录进控制台创建一个 API Key记下来备用模型 ID 不要凭印象写以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 里的模型广场当时列表为准看到哪个能用在 Codex 上就用哪个。Key 在文里统一写成占位符YOUR_API_KEY实际粘贴时替换成你自己那串。顺手把 Base URL 记牢填进工具的是https://taotoken.net/api末尾不要加/v1。这个地址和上面那个带参数的官网落地页是两个用途一个给浏览器打开用来注册、建 Key、看用量一个给配置文件用别互相抄错。2.2~/.codex/config.toml的最小可复制配置Codex 用 TOML 配置文件描述模型和供应商注意不要把它当成 Anthropic 系的工具去套ANTHROPIC_*环境变量那样读不到。一个能跑的最小配置长这样model YOUR_MODEL_ID model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chatKey 用环境变量传进去省得把明文写在配置里export TAOTOKEN_API_KEYYOUR_API_KEY如果你的 Codex CLI 版本习惯从~/.codex/auth.json读OPENAI_API_KEY那就把同一把YOUR_API_KEY填到那个字段里不确定自己的版本读哪里先在终端跑一次帮助信息确认别两边都写导致自己搞混。保存完配置重新开一个终端窗口让环境变量生效。2.3 用一句话确认 Codex 已经走通配置写完之后不要直接进入排障先做一次最小验证codex 用一句话说明 /tmp 写满之后 mkdir 为什么会失败能正常返回一段解释说明 Key、Base URL、模型 ID 三件套是对的可以进入下一步。如果这里就报错先回到配置本身找问题别把配置错误和远程主机的 2002 混在一起排查那样只会越查越乱。3. 把 2002 和 df -h 一起丢给 Codex 的提问方式3.1 一段可以直接复制的排障提示词提问的质量决定回答的质量。只贴一句「2002 怎么办」多半会得到一段泛泛的连接排查清单把报错原文、日志上下文、df -h输出一起给Codex 才能顺着文件系统这条线走。可以照下面这段改我在用 VS Code / Trae 通过 SSH 连接远程主机安装远程扩展服务器失败客户端提示 无法在远程主机上安装 vscode/Trae 服务器。安装脚本异常终止2002。 日志里还有这些行 Cannot mkdir: No space left on device 下面是我在远程主机上执行 df -h 和 df -i 的输出 粘贴输出 请帮我做三件事 1. 判断这次失败更可能是块空间不足还是 inode 不足 2. 按「先观察、再定位、最后清理」三步给出我需要在远程主机上手动执行的命令并说明每条命令在看什么 3. 明确指出哪些 /tmp 条目不能删。 不要假设你能登录我的主机所有命令我自己在 SSH 会话里执行。最后一句很关键。它把 Codex 的角色限定在「出主意」这一侧避免出现「让 Codex 直接连上去清 /tmp」这种既做不到也不该做的设想。3.2 Codex 应该返回什么定位 /tmp 占用的思路一个靠谱的回答通常会给出一条先观察再动手的路径先用df -h /tmp和df -i /tmp确认是容量还是 inode再用du -sh /tmp/* 2/dev/null | sort -h | tail -20找出体量最大的几个目录或文件而不是一上来就删确认没有正在使用的文件之后才进入清理动作。如果回答里直接跳到rm -rf /tmp/*那就不是一份可用的建议直接忽略。还有一个容易被忽略的点/tmp里堆积的东西未必都是垃圾。长期运行的机器上可能有构建缓存、上传中的临时包、被某个进程占用的锁文件。所以 Codex 给出的清单里应该包含「先看谁在用」这一步而不是只有删除命令。3.3 命令在本地敲结果贴回对话远程主机的诊断命令一律由你在 SSH 会话里执行。把你跑出来的输出复制回对话让 Codex 继续解释比如du结果里哪几个目录占了主要空间、lsof结果里哪些是被占用的。这个来回可以走两三轮直到你清楚知道要删什么、保留什么再动手。顺带说一句不要为了省事把主机的登录密码、私钥、内网拓扑贴进对话排障不需要这些东西。df、du、lsof的输出已经足够让模型判断方向。4. 远程主机上清理 /tmp 的顺序lsof、fuser、find -atime4.1 删之前先看谁还在用 /tmp删除前的第一道保险是确认没有进程仍在使用这些文件。lsof D /tmp可以列出 /tmp 下被打开的文件目录大时会比较慢fuser -vm /tmp更快一些能看出哪些进程挂在 /tmp 上。两条命令输出里如果有以socket开头、或者带X11、ssh-XXX字样的条目而且正在被当前会话使用那就不能碰——删掉它们轻则当前 SSH 会话断开重则 X11 转发一起挂掉。这一步不需要 root 才能看但删除一定要提权。建议先su root或者用sudo -i切到管理者权限避免删到一半因为权限不足中断留下半清理状态。4.2 按访问时间挑两天以上的普通文件清理策略上按「最近访问时间」筛是最稳的一种不会误伤刚刚还在用的临时文件。先只看不删加-print确认范围sudo find /tmp -type f -atime 2 -print | head -50确认列出来的都是想要的陈旧文件之后再执行删除sudo find /tmp -type f -atime 2 -delete-type f限定了只处理普通文件目录、符号链接、socket 不会被这条命令带走这也正是它比rm -rf /tmp/*更值得推荐的原因。如果机器是多人在用的挑个低峰时段做并且提前打个招呼。4.3 删完再连一次确认 2002 消失清理结束后回头复查一次空间df -h /tmp df -i /tmp确认容量和 inode 都降下来了再回到客户端重连一次 VS Code 或 Trae。这一次应该能正常走完安装脚本不再出现 2002。如果空间释放了仍然报 2002那就把新的日志段落重新贴给 Codex让它对比前后差异——这说明问题不在 /tmp 容量上可能是权限、配额或者脚本本身被中断需要换一条线索继续查。5. 通道跑通之后把这次 Codex 调用对上账5.1 用同一把 Key 在模型对话里再发一条远程主机恢复连接之后可以顺手确认一下刚才那几轮对话是不是都走通了。用同一把YOUR_API_KEY在 TaoToken 模型对话 里发一条测试消息看看返回是否正常。这一步能帮你区分两种情况如果对话正常但 Codex 报错问题在本地配置文件如果两边都异常那多半是 Key 或模型 ID 写错了。5.2 看用量、看套餐、看文档如果这类排障对话会长期高频发生可以打开 Coding Plan 看当前套餐够不够撑住日常问答需要再建一把新 Key 时入口在 控制台 API Keys。想核对这次调用有没有记上账去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的用量页面看一眼即可比反复重试更省时间。回到这次的排障本身我最大的体会是2002 这类报错最怕的不是难是方向跑偏。很多人第一反应是重装扩展、换网络、清 SSH 缓存折腾一圈回来发现是远程主机 /tmp 满了。把 Codex 摆在「读日志、出命令」的位置把执行权留在自己手里整个流程会清爽很多贴报错、拿命令、本地跑、贴结果、再判断几轮下来就能从 2002 走到重连成功。