
运行环境
本机win10通过wsl安装的 hermes version
Hermes Agent v0.14.0
Python: 3.11.15
OpenAI SDK: 2.24.0;
升级Hermes Web UI
当前Hermes Web UI v0.4.0 升级到Hermes Web UI v0.5.35
方式一:内置升级命令(推荐)
在 WSL 终端执行:
Bash
hermes-web-ui update
或
hermes-web-ui upgrade
这个命令会自动清理 npm 缓存、安装最新版并重启服务。
方式二:手动 npm 升级
如果内置命令出问题,可以手动强制重装:
Bash
# 1. 先停止当前 Web UI
hermes-web-ui stop
# 2. 强制清理缓存并安装最新版
npm cache clean --force
npm install -g hermes-web-ui@latest
# 3. 验证版本
hermes-web-ui -v# 4. 重新启动
hermes-web-ui start
问题:
问题1:node版本问题:
Java
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE package: 'hermes-web-ui@0.5.35',
npm warn EBADENGINE required: { node: '>=23.0.0' },
npm warn EBADENGINE current: { node: 'v20.20.2', npm: '10.8.2' }
hermes-web-ui@0.5.35 明确要求 Node.js ≥ 23.0.0,你当前是 v20.20.2,需要升级 Node;这时就要安装node23及以上的版本;
问题2:安装完node23,运行nvm use 23异常
Java
Now using node v23.11.1
运行 ~/.hermes/skills$ node -v提示
-bash: /home/james/.nvm/versions/node/v23.11.1/bin/node: cannot execute binary file: Exec format error
这是 WSL 与 Node 23 的已知兼容性问题,在 GitHub 上已有大量报告。
Node 23 使用了新的 ELF/系统调用特性,WSL 的兼容层无法正确加载其二进制文件。
这是因为之前使用WSL1,后面升级到WSL2。重新安装hermes-web-ui v0.5.35就行。
所以一定要用WSL2安装,否则后患无穷。
问题3:WS1转换WSL2问题
如果之前是WSL1 则要转WSL2。
Java
wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。
有关信息,请访问 https://aka.ms/wsl2-install
这个错误说明 虚拟机平台功能还没真正生效,因为你之前用了 /norestart 参数,需要手动重启电脑才能激活。
问题3:在上面一步成功后,再次安装web异常
Bash
npm install -g hermes-web-ui@0.5.35
npm error code 1
npm error path /home/james/.nvm/versions/node/v23.11.1/lib/node_modules/hermes-web-ui/node_modules/node-pty
npm error command failed
......
npm error g++: error: unrecognized command line option '-std=gnu++20'; did you mean '-std=gnu++2a'?
npm error make: *** [pty.target.mk:119: Release/obj.target/pty/src/unix/pty.o] Error 1
npm error gyp ERR! build error
npm error gyp ERR! stack Error: `make` failed with exit code: 2
npm error gyp ERR! stack at ChildProcess.<anonymous> (/home/james/.nvm/versions/node/v23.11.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:216:23)
npm error gyp ERR! System Linux 5.10.16.3-microsoft-standard-WSL2
......
WSL2 转换成功了(内核 5.10.16.3-microsoft-standard-WSL2),Node 23 也正常。现在的问题是 g++ 版本太老。
关键错误:
Plain
g++: error: unrecognized command line option '-std=gnu++20'; did you mean '-std=gnu++2a'?
Ubuntu 20.04 默认 g++ 是 9.x,不支持 C++20,而 node-pty 编译需要 g++ 10+。
解决方案:升级 g++ 到 10 或更高
在 WSL 中执行:
Bash
# 1. 安装 g++-10sudo apt update
sudo apt install -y g++-10 gcc-10
# 2. 设置为默认编译器sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100# 3. 验证版本
g++ --version # 应显示 10.x.x
gcc --version # 应显示 10.x.x
然后重新安装 hermes-web-ui
Bash
nvm use 23npm install -g hermes-web-ui@0.5.35
如果安装成功:
Bash
hermes-web-ui -v # 应显示 v0.5.35
hermes-web-ui start
如果 apt 找不到 g++-10,先添加 toolchain PPA:
Bash
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install -y g++-10 gcc-10
然后重复上面的设置默认编译器步骤。
再运行:
Bash
sudo apt update && sudo apt install -y g++-10 gcc-10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
g++ --version