删除bun安装的qmd

5 2026-03-25 12:21 2026-03-25 12:21

检查 QMD 的实际安装位置

首先确认 QMD 是如何安装的:

bash
# 查看 qmd 命令的位置
which qmd

# 如果是通过 bun 安装的,可能显示类似:
# /Users/用户名/.bun/bin/qmd

# 查看该文件内容(它是一个可执行脚本)
head -5 $(which qmd)

根据安装方式选择卸载方法

情况 1:通过 bun install -g 安装(实际上 Bun 会创建符号链接)

如果 QMD 是通过 bun install -g 安装的,它实际上创建了一个指向源码的符号链接。可以这样卸载:

bash
# 查看 bun 的全局安装目录
bun pm ls -g

# 手动删除 qmd 相关的包
rm -rf $(bun pm bin)/qmd
rm -rf $(bun pm cache)/*qmd*  # 清理缓存

情况 2:通过 bun add -g 或直接克隆安装

bash
# 查看所有全局安装的包
ls -la $(bun pm bin)/../

最简单的方法:直接删除可执行文件

既然 Bun 的全局管理比较松散,最直接的方法就是手动删除:

bash
# 删除 qmd 可执行文件
rm $(which qmd)

# 可选:删除相关的依赖缓存
bun pm cache rm

推荐:直接用 npm 安装 QMD

既然问题根源是 Node 环境找不到 QMD,而且你已经确定要使用 npm 方案,可以直接跳过卸载步骤,用 npm 覆盖安装:

1. 确认 Node.js 版本

bash
node --version  # 需要 v22+

2. 用 npm 全局安装 QMD

bash
# 使用 npm 直接安装,会覆盖之前可能存在的 qmd 命令
npm install -g https://github.com/tobi/qmd

# 验证安装
which qmd
# 应该显示类似 /usr/local/bin/qmd 或 ~/.npm-global/bin/qmd

3. 检查 PATH 优先级

如果系统中同时存在多个 qmd 命令,需要确保 npm 安装的版本优先:

bash
# 查看所有 qmd 的位置
which -a qmd

# 确保 npm 的 bin 目录在 PATH 中且优先级高于 bun 的 bin
echo $PATH | tr ':' '\n' | grep -E '(npm|bun)'

4. 如果 npm 安装的 qmd 不生效

bash
# 强制刷新命令哈希缓存
hash -r
# 或重新打开终端

# 重新验证
qmd --version

验证解决方案

完成以上步骤后,重启 OpenClaw 并检查:

bash
# 1. 重启 gateway
openclaw gateway restart

# 2. 查看日志
tail -f /tmp/openclaw/openclaw-$(date +%F).log | grep -i qmd

# 3. 应该看到类似输出:
# Using QMD memory backend
# QMD initialized successfully

备选方案:直接在 OpenClaw 项目目录安装

如果全局安装仍有问题,可以考虑在 OpenClaw 自己的目录中安装 QMD:

bash
# 找到 OpenClaw 的安装位置
npm list -g openclaw --depth=0

# 进入 OpenClaw 的全局 node_modules 目录
cd $(npm prefix -g)/lib/node_modules/openclaw

# 在该目录下安装 qmd 作为依赖
npm install https://github.com/tobi/qmd

# 重启 OpenClaw
openclaw gateway restart

这种方法虽然不太优雅,但能确保 OpenClaw 一定能找到 QMD 依赖。

选择哪种方法取决于你的实际需求。如果追求干净简洁,推荐使用 npm 全局安装;如果希望彻底隔离环境,可以在 OpenClaw 项目内安装。

全部评论

·