编码代理与终端 · 收录于 2026-08-29 · 适用 2 工具 ✓ 实测验证

卸载后残留——共享配置不还原 / 命令仍在

已验证 2026-08-29卸载后残留——卸载前先备份共享配置(唯一后悔药),完整卸载=删包+删工具配置目录+手动还原共享配置段。

快速修复

# 一键:卸载前先备份共享配置(唯一后悔药)
cp ~/.claude.json ~/.claude.json.bak

完整卸载 = 删包 + 删工具配置目录 + 手动还原共享配置段。

你会遇到什么

卸载工具后残留问题仍在:共享配置没还原(之前被工具改写的 ~/.claude.json / ~/.codex/config.toml 保持切换后的状态);命令仍在(卸载后 ccr / cc-switch 仍能解析,或重装后配置还是旧的)。卸了等于没卸干净。

本文路径:快速修复(30 秒一段命令)→ 一步步排查(可跳读)→ 原理与变体(症状/原因/证据)。赶时间直接跳到「快速修复」。

为什么会这样

卸载命令只删工具自身(dpkg -r / npm rm -g + 工具自己的配置目录),不还原它改过的共享配置文件;shell hash 缓存会让已卸载的命令继续命中。

卸载 ≠ 还原:卸载程序(dpkg -r / npm rm -g)只删除它自己声明拥有的文件(二进制、库、自己的配置目录),不会还原它安装时改过的共享配置文件(如追加过配置项的系统级文件、PATH 写入、启动器注册)。所以「卸载后还在影响系统」是常态而不是异常。

shell hash 缓存是第二层:bash 会把命令路径缓存在内存里,已卸载的命令在同一个 shell 会话里仍可能被命中执行(新开终端才消失)。

确定性推论:卸载后残留影响按两个方向查——文件层(which <cmd>、dpkg -l | grep、配置目录)和环境层(PATH、shell hash:hash -r 清缓存);「卸载了还能跑」先 hash -r 或开新终端排除缓存,再查 PATH 里的残留文件;判断路径:同一终端能跑/新终端不能 = hash 缓存,两边都不能 = 文件残留。

一步步来

1. 卸载前备份共享配置 — 必做

cp ~/.claude.json ~/.claude.json.bak

同理 ~/.codex/config.toml、~/.claude/settings.json。

2. 完整卸载 = 删包 + 删工具配置目录 — 必做

cc-switch:

dpkg -r cc-switch && rm -rf ~/.cc-switch

claude-code-router:

npm rm -g @musistudio/claude-code-router && rm -rf ~/.claude-code-router

3. 手动还原共享配置段 — 必做

还原 provider 段 / ANTHROPIC_* 路由注入段,或按备份还原;共享文件不代删(其它工具也在写)。

4. 新 shell 验证 — 必做

command -v ccr

应为空;重装后配置应是新的。

怎么确认修好了

零残留验证(实测输出形态):

ccr uninstall 闭环:102 包移除 + 配置目录清除 → verify 零残留 exit=0(实测)
command -v ccr → 空

其它环境的表现

环境说明
cc-switch卸载命令不含还原步骤(字符串审计);dpkg -r + rm -rf ~/.cc-switch
claude-code-routernpm rm + 删 ~/.claude-code-router;settings.json 路由注入段手动确认(实测闭环)
共享配置先备份再动手;不代删共享文件
shell hash新 shell 验证 command -v

症状

卸载工具后残留问题仍在:

  • 共享配置没还原:之前被工具改写的 ~/.claude.json / ~/.codex/config.toml 保持切换后的状态;
  • 命令仍在:卸载后 ccr / cc-switch 仍能解析,或重装后配置还是旧的。

原因

卸载命令只删工具自身(dpkg -r / npm rm -g + 工具自己的配置目录),不还原它改过的共享配置文件;shell hash 缓存会让已卸载的命令继续命中。

解法

  1. 卸载前备份共享配置:cp ~/.claude.json ~/.claude.json.bak(同理 ~/.codex/config.toml、~/.claude/settings.json)。
  2. 完整卸载 = 删包 + 删工具配置目录:cc-switch 用 dpkg -r + rm -rf ~/.cc-switch;claude-code-router 用 npm rm -g @musistudio/claude-code-router + rm -rf ~/.claude-code-router。
  3. 手动还原共享配置段(provider 段 / ANTHROPIC_* 路由注入段)或按备份还原;共享文件不代删(其它工具也在写)。
  4. 新 shell 验证:command -v ccr 应为空;重装后配置应是新的。

受影响工具实例

  • cc-switch:卸载 = dpkg -r + rm -rf ~/.cc-switch,不含还原步骤(字符串审计);实测闭环。
  • claude-code-router:npm 全局包 + ~/.claude-code-router 配置目录;~/.claude/settings.json 路由注入段需手动确认清理;桌面端 release 二进制走系统卸载,不在 npm 管理范围;实测闭环 2026-08-28(102 包移除 + 目录清除 + verify 零残留 exit=0)。
验证证据
  • cc-switch:字符串审计确认管理面含 ~/.claude.json / ~/.codex/config.toml / opencode.json;卸载命令不含还原步骤(manifest uninstall.note)。
  • claude-code-router:实测闭环 2026-08-28:install exit=0 → uninstall(102 包移除 + 配置目录清除)→ verify 零残留 exit=0。

适用工具 (2)

本问题方案已挂到下列工具的方案页——从工具页也能回到这里,双向可达。

cc-switchclaude-code-router

来源与证据

收录 验证 ✓ 实测验证适用 2 工具
方案含本地实测或来源可复核的解法;未实测项已在文中如实标注。

← 编码代理与终端 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡