在 Windows11 + WSL2 Linux 子系统的双系统下,让 WSL 中的 OpenClaw 能相对稳、少踩坑的升级流程.
在 Windows 环境下的 WSL2 ,也就是 linux 子系统,经常会发生和主系统串号的问题,有的小伙伴分别在Windows下和WSL2下都安装了 OpenClaw ,结果升级的时候由于互相串号,结果小龙虾升级完成后就睡死过去无法启动了。
所以,我总结了一些让 WSL 中的 OpenClaw 能相对稳、少踩坑的升级流程,这篇文章的核心目标就三件事:
- 只用 WSL 自己的 node/npm/openclaw
- 全局安装路径固定到 Linux 家目录
- 升级前先停服务、清旧包、再装新包
一、先确认你现在用的是 WSL 自己的 Node,不是串到 Windows 版
先跑:
which nodewhich npmwhich openclawnode -vnpm -v
理想情况是类似这样:
/usr/bin/node/usr/bin/npm/home/htc/.npm-global/bin/openclaw
如果你看到的是 /mnt/c/... 或 C:\... 映射过来的路径,那就说明串了,不要直接升级,先修 PATH。
二、确保 npm 全局目录在 WSL 家目录
建议固定成你现在这套:
npm config get prefix
理想输出:
/home/htc/.npm-global
如果不是,就设一下:
npm config set prefix ~/.npm-global
然后把下面这些放进 ~/.bashrc 或 ~/.zshrc:
export PATH="$HOME/.npm-global/bin:$PATH"
立刻生效:
export PATH="$HOME/.npm-global/bin:$PATH"hash -r
再确认一次:
npm config get prefixecho $PATHwhich openclaw
三、升级前先停掉正在跑的 OpenClaw
如果 OpenClaw 正在运行,npm 更新时容易出各种脏状态。先停:
openclaw gateway stop
如果停不下来,补一刀查进程:
ps aux | grep openclawps aux | grep node
必要时手动结束相关进程。
四、在 Linux 家目录操作,不要站在 /mnt/c/... 下面升级
先切回家目录:
cd ~pwd
应该是:
/home/htc
别在/mnt/c/Users/... 下面跑全局安装。虽然理论上也能跑,但 WSL + Windows 挂载目录一起用时,更容易碰到权限、链接、缓存、rename 之类脏问题。
五、清理旧的 OpenClaw 全局包
你这次已经遇到过 ENOTEMPTY,所以建议直接清干净再装:
rm -rf ~/.npm-global/lib/node_modules/openclawrm -f ~/.npm-global/bin/openclawhash -r
可选:顺手看一下目录状态
ls -la ~/.npm-global/lib/node_modules/ls -la ~/.npm-global/bin/
六、清 npm 缓存并安装最新版
npm cache verifynpm i -g openclaw@latest --verbose --fetch-timeout=120000--fetch-retries=2
如果你网络一般,也可以先不用 verbose,输出更干净:
npm i -g openclaw@latest --fetch-timeout=120000--fetch-retries=2
七、安装后立刻验证是不是装对了
which openclawopenclaw --versionopenclaw status
你要重点看:
which openclaw 指向的是不是 ~/.npm-global/bin/openclawopenclaw status
八、重新启动网关
如果安装正常,再启动:
openclaw gateway start
然后再看状态:
openclaw gateway statusopenclaw status
推荐的一次性命令清单
如果你想直接照抄,按这个顺序最稳:
cd ~which nodewhich npmwhich openclawnode -vnpm -vnpm config set prefix ~/.npm-globalexport PATH="$HOME/.npm-global/bin:$PATH"hash -ropenclaw gateway stoprm -rf ~/.npm-global/lib/node_modules/openclawrm -f ~/.npm-global/bin/openclawhash -rnpm cache verifynpm i -g openclaw@latest --fetch-timeout=120000--fetch-retries=2which openclawopenclaw --versionopenclaw statusopenclaw gateway startopenclaw gateway status
如果还出错,优先看这几类问题
1. ENOTEMPTY
说明旧目录没清干净。继续查:
ls -la ~/.npm-global/lib/node_modules/openclaw
如果目录还在,说明有残留或占用,删掉再装。
2. which openclaw 指到 Windows 路径
比如跑出来 /mnt/c/...
说明 PATH 顺序错了。先看:
echo $PATH
确保 ~/.npm-global/bin 在前面。必要时重新开 shell:
exec bash
3. node / npm 走的是奇怪版本
如果你想长期更稳,我反而建议 WSL 里用 nvm 管理 Node。这样 Node 升级和 npm 全局包都更可控,不容易跟系统包缠在一起。
我的建议,别省这两个检查
每次升级完,至少跑这两个:
which openclawopenclaw status
因为“安装成功”和“真正跑的是你刚装的那个版本”,是两回事。
温馨提示: 关注可获取更多精彩内容