环境准备:WSL2 安装 启用 WSL2管理员身份打开 PowerShell执行启用 WSLdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart启用虚拟机平台WSL2 必需dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart执行完后重启电脑设置 WSL 默认版本为 2wsl --set-default-version 2查看当前状态确认没有报错,没有报错说明 WSL2 修复成功wsl --status提示需要更新 WSL2 Linux 内核下载并安装 wsl_update_x64.msi安装完更新包后再次执行上面的命令二、常见安装问题及解决方案以管理员身份打开 PowerShell输入命令 wsl --install问题1提示无效的install需要升级wsl更新wsl异常wsl --update正在检查更新…正在下载更新…正在安装更新…这个处理器类型不支持该安装程序包。请与产品供应商联系。说明当前 Windows 系统架构32位/64位/ARM与 WSL2 更新包不匹配或者 CPU 不支持虚拟化。下载并安装 wsl_update_x64.msi双击安装完成后重启电脑再执行wsl --set-default-version 2wsl --install -d Ubuntu-20.04install等待部署完成 重新启动电脑。问题2win10安装Ubuntu异常错误代码: 0x80072ee7正在下载: Ubuntu 20.04 LTS安装过程中出现错误。分发名称: ‘Ubuntu 20.04 LTS’ 错误代码: 0x80072ee7提前下载指定版本 Ubuntu 20.04 LTS 或 Ubuntu默认最新版安装包。双击解压后的 ubuntu2004.exe等待安装完成安装完后设置 WSL2wsl --set-version Ubuntu-20.04 2查看当前状态确认没有报错,没有报错说明 WSL2 修复成功wsl --status问题3ubuntu2004.exe安装异常WSL2 内核未安装双击ubuntu2004.exe后 Installing, this may take a few minutes…WslRegisterDistribution failed with error: 0x800701bcError: 0x800701bc WSL 2 ??? https://aka.ms/wsl2kernelPress any key to continue…双击下载的 wsl_update_x64.msi 文件再设置默认 WSL 版本为 2wsl --set-default-version 2查看当前状态确认没有报错,没有报错说明 WSL2 修复成功wsl --status再次双击 ubuntu2004.exe手动安装 MSI 也报错处理器类型不支持说明你的系统或 CPU 确实不支持 WSL2需要降级到 WSL1不要使用WSL1后面有其它组件版本不支持设置默认使用 WSL1wsl --set-default-version 1重新双击 ubuntu2004.exe 安装即可。WSL1 同样可以编译安装 Hermes只是性能稍差不影响使用。问题4安装完wsl_update_x64.msi后 再双击ubuntu2004.exe 还是异常CPU 虚拟化未开启Installing, this may take a few minutes…WslRegisterDistribution failed with error: 0x80370102Error: 0x80370102 ???错误 0x80370102 通常表示 BIOS/UEFI 中 CPU 虚拟化未开启或者 Windows 虚拟机平台功能未生效。1.PowerShell 执行以下命令弹出的窗口看版本号2004Build 19041是支持wsl2的。winver2.检查 CPU 虚拟化是否开启打开任务管理器点击 性能 标签页点击左侧 CPU右下角看 “虚拟化” 状态已启用3.确认 Windows 功能已启用PowerShell重新执行启用虚拟机平台WSL2 必需dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart启用 Hyper-V部分系统需要dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart执行完重启电脑然后再双击 ubuntu2004.exe。总之还没到安装hermes一步就在wsl和ubuntu系统之间反复的折腾。终于正常进入ubuntu系统了进行安装hermes。三、Hermes 安装问题问题5 WSL 1 is not supported. Please upgrade to WSL 2ubuntu中运行npm install -g hermes-web-ui异常 WSL 1 is not supported. Please upgrade to WSL 2 or above.Could not determine Node.js install directory之前安装wsl2失败就用了wsl1来试结果报以上异常看来必须用wsl2就按以上步骤来修复安装wsl2。安装完成后 WSL2 Ubuntu 中安装 hermes-web-ui安装 Node.jssudo apt updatesudo apt install -y nodejs npm安装 hermes-web-uisudo npm install -g hermes-web-ui启动hermes-web-ui start默认版本 node v10.19.0 和 npm6.14.4再次遇到 Could not determine Node.js install directory 错误改用以下方式mkdir -p ~/.npm-globalnpm config set prefix ‘~/.npm-global’echo ‘export PATH“HOME/.npm−global/bin:HOME/.npm-global/bin:HOME/.npm−global/bin:PATH”’ ~/.bashrcsource ~/.bashrcnpm install -g hermes-web-ui启动后hermes-web-ui后在 Ubuntu 终端中执行以下命令查看端口监听情况ss -tlnp | grep 8648或者netstat -tlnp | grep 8648问题6npm install -g hermes-web-ui运行异常Node.js 版本过低Rebuilding because directory /usr/local/lib/node_modules/hermes-web-ui/node_modules/node-pty/prebuilds/linux-x64 does not existgyp ERR! configure errorgyp ERR! stack Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/hermes-web-ui/node_modules/node-pty/build’gyp ERR! System Linux 4.4.0-19041-Microsoftgyp ERR! command “/usr/bin/node” “/usr/bin/node-gyp” “rebuild”gyp ERR! cwd /usr/local/lib/node_modules/hermes-web-ui/node_modules/node-ptygyp ERR! node -v v10.19.0gyp ERR! node-gyp -v v6.1.0gyp ERR! not oknpm WARN notsup Unsupported engine for hermes-web-ui0.5.32: wanted: {“node”:“23.0.0”} (current: {“node”:“10.19.0”,“npm”:“6.14.4”})npm WARN notsup Not compatible with your version of node/npm: cliui8.0.1npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! node-pty1.1.0 install:node scripts/prebuild.js || node-gyp rebuildnpm ERR! Exit status 1npm ERR!npm ERR! Failed at the node-pty1.1.0 install script.npm ERR! ‘Error: EACCES: permission denied, access ‘/usr/local/lib’’……两个原因导致失败Node.js 版本太老Ubuntu 20.04 默认源里的 Node.js 是 v10.19.0但 hermes-web-ui 要求 Node.js 23.0.0权限问题用 sudo npm install -g 安装会导致系统目录权限混乱解决方案用 nvm 安装新版 Node.jsnvmNode Version Manager可以安装任意版本的 Node.js且不需要 sudo。curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash再用nvm安装Node.js 23nvm install 23再重装hermes-web-uinpm install -g hermes-web-ui问题7nvm安装异常 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused国内访问 GitHub 被拦截了用 Gitee 国内镜像 安装 nvm用 Gitee 镜像下载 nvm 安装脚本curl -o- https://gitee.com/mirrors/nvm/raw/v0.39.7/install.sh | bash安装完后重新打开一个 Ubuntu 终端或执行 source ~/.bashrc然后配置 nvm 使用国内 Node.js 镜像下载更快export NVM_NODEJS_ORG_MIRRORhttps://npmmirror.com/mirrors/node安装 Node.js 23nvm install 23验证版本node -v应显示 v23.x.xnpm -v应显示 10.x.x问题8nvm 命令找不到Command ‘nvm’ not found运行curl -o- https://gitee.com/mirrors/nvm/raw/v0.39.7/install.sh | bash后nvm --versionCommand ‘nvm’ not found, did you mean:command ‘lvm’ from deb lvm2 (2.03.07-1ubuntu1)终端会话没有加载 nvm 的环境变量手动把 nvm 配置写入 .bashrcecho ‘export NVM_DIR“HOME/.nvm′ /.bashrcecho′[−sHOME/.nvm ~/.bashrc echo [ -s HOME/.nvm′/.bashrcecho′[−sNVM_DIR/nvm.sh” ] . “$NVM_DIR/nvm.sh”’ ~/.bashrc重新加载source ~/.bashrc验证nvm --version问题9nvm install 23 返回Computing checksum with sha256sumChecksums matched!Your project npmrc file (/mnt/c/Users/Administrator/.npmrc)has aglobalconfigand/or aprefixsetting, which are incompatible with nvm.Runnvm use --delete-prefix v23.11.1to unset it.这个错误是因为 Windows 上的 npm 配置干扰了 WSL2 里的 nvm。你的 Windows 用户目录C:\Users\Administrator里有一个 .npmrc 文件里面设置了 prefix 或 globalconfigWSL2 挂载了 Windows 磁盘npm 读取到了这个配置与 nvm 冲突。解决方法在 Ubuntu 终端中执行提示的命令nvm use --delete-prefix v23.11.1nvm use --delete-prefix v23.11.1命令返回unexpected/home/james/.nvm/versions/node/v23.11.1/bin/node: 1: Syntax error: “)” unexpected/home/james/.nvm/versions/node/v23.11.1/bin/node: 1: Syntax error: “)” unexpected这个错误说明 Node.js 23 的二进制文件与你的 WSL2 环境不兼容。原因很可能是WSL2 的 Linux 内核版本较老你之前显示 5.10.16或者 nvm 下载的 Node.js 23 是 ARM64 架构而非 x64此处建议我安装node20(后面排查不是node版本问题还是用23的版本),但安装后又出现异常npm -v 输出npm error config prefix cannot be changed from project config: /mnt/c/Users/Administrator/.npmrc.10.8.2node.js 20 安装成功但 Windows 的 .npmrc 文件还在干扰 npm。直接处理掉移除 Windows 的 .npmrc 干扰备份并删除 Windows 用户的 .npmrcmv /mnt/c/Users/Administrator/.npmrc /mnt/c/Users/Administrator/.npmrc.bak重新加载 nvmsource ~/.bashrc验证 npm 是否正常npm -v四、运行时问题问题10API 调用 502 错误重新配置以上模型后 对话输入内容后 Error: API Error 502: {“error”:{“message”:“Proxy error: fetch failed”}}502 Proxy error: fetch failed 说明 hermes-web-ui 这个应用本身无法连到外