From ae7ca0c0056621c67791b6d621a8c72ffb69349d Mon Sep 17 00:00:00 2001 From: yangxuan Date: Wed, 16 Sep 2026 16:27:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(cli):=20=E6=96=B0=E5=A2=9E=20openclaw=20?= =?UTF-8?q?=E5=8C=85=E8=A3=85=E8=84=9A=E6=9C=AC=E5=9B=BA=E5=AE=9A=20Node?= =?UTF-8?q?=2026=EF=BC=8C=E4=BF=AE=20P0-1=20=E7=9A=84=20CLI=20=E6=8B=92?= =?UTF-8?q?=E8=B7=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 根因: 入口 openclaw.mjs 是 #!/usr/bin/env node,非交互 shell 的 PATH 不含 nvm 目录,node 落到系统 /usr/bin/node = v22.23.1,报 node:sqlite NUL 错误拒绝运行 - 方案: scripts/bin/openclaw 用绝对路径固定 node v26.8.2;实测 models list / doctor 均正常(此前 models list 直接报错) - 未选方案: 删 /usr/bin/node 会破坏 Debian 包依赖(dpkg -S nodejs 拥有); 删 nvm 会让 gateway 服务无法启动(ExecStart 指向 nvm 26 路径) --- scripts/bin/README.md | 13 +++++++++++++ scripts/bin/openclaw | 6 ++++++ 2 files changed, 19 insertions(+) create mode 100644 scripts/bin/README.md create mode 100755 scripts/bin/openclaw diff --git a/scripts/bin/README.md b/scripts/bin/README.md new file mode 100644 index 0000000..8b51370 --- /dev/null +++ b/scripts/bin/README.md @@ -0,0 +1,13 @@ +# scripts/bin + +CLI 包装脚本,**不自动生效**,需手动安装: + +```bash +mkdir -p ~/.local/bin +cp ~/.openclaw/scripts/bin/openclaw ~/.local/bin/openclaw +chmod +x ~/.local/bin/openclaw +``` + +| 脚本 | 作用 | +|---|---| +| `openclaw` | 固定用 nvm 的 Node 26 运行 openclaw CLI,规避「非交互 shell PATH 无 nvm → 落到系统 /usr/bin/node(22) → node:sqlite 报错拒跑」问题。详见 `docs/openclaw-API响应性能分析与优化.md` P0-1 | diff --git a/scripts/bin/openclaw b/scripts/bin/openclaw new file mode 100755 index 0000000..582a6ab --- /dev/null +++ b/scripts/bin/openclaw @@ -0,0 +1,6 @@ +#!/bin/sh +# 固定用 nvm 的 Node 26 运行 openclaw CLI。 +# 起因: openclaw 入口是 "#!/usr/bin/env node",非交互 shell 的 PATH 不含 nvm, +# 会落到系统 /usr/bin/node (v22) 并报 node:sqlite NUL 错误而拒跑。 +# 详见 docs/openclaw-API响应性能分析与优化.md 的 P0-1。 +exec "/home/yangxuan/.nvm/versions/node/v26.8.2/bin/node" "/home/yangxuan/.nvm/versions/node/v26.8.2/lib/node_modules/openclaw/openclaw.mjs" "$@"