为什么我卸载后 OpenClaw 仍然能工作
Source: Dev.to
设置
如果你看到这篇文章,说明你可能正处在和我当初相同的情况。运行 openclaw 时,系统没有返回 “command not found”,而是把完整的使用手册打印出来——即使已经按照官方的卸载说明操作过。
我使用 openclaw.ai 官方文档安装了 OpenClaw。想要移除时,我严格遵循了它们的卸载步骤:
- 使用内置的 OpenClaw 卸载脚本
- 停止网关服务
- 删除状态目录
- 删除全局 npm 安装
- 检查
systemd/launchctl/计划任务
结果…… openclaw 仍然存在。
我核实了所有内容:
systemctl list-units | grep openclaw
# Nothing.
dpkg -l | grep openclaw
# Nothing.
npm list -g | grep openclaw
# Nothing.
当时感觉像是恶意软件。其实并不是。
“等等… 什么?”的时刻
转折点是运行了下面的两个命令。一个词解释了一切:哈希(hashed)。
“哦… 原来是它” 的时刻
我使用 NVM(Node Version Manager)。这意味着每个 Node 版本都有自己的全局 npm 包。
- 我之前在使用 Node v22.14.0 时安装了 OpenClaw。
- 后来切换到了 Node v25。
但是旧的 Node v22 bin 目录仍然在我的 $PATH 中。Bash 已经缓存(哈希)了该命令的位置。即使在当前的 Node 版本中执行了卸载,旧的二进制文件仍然保存在 v22 文件夹中:
~/.nvm/versions/node/v22.14.0/bin/openclaw
Bash 仍然从缓存中运行它。
实际发生了什么
旧的二进制文件残留在之前的 Node 版本的全局 bin 目录中,而 Bash 的命令哈希表仍指向它。
真正的解决办法
两条命令解决了一切:
rm -f ~/.nvm/versions/node/v22.14.0/bin/openclaw
hash -r
现在:
which openclaw
# openclaw not found
OpenClaw 的文档是正确的。问题不在工具本身,而在我的环境。
为什么 OpenClaw 仍然有响应?
如果这篇文章帮你省去了数小时的困惑,欢迎分享——因为此时此刻还有人正敲入:
openclaw
却不明白它为何拒绝卸载。