Hermes 本体安装配置步骤
本篇博客是 只安装 Hermes 本体、先不配置角色 的从 0 到完成步骤。建议不要用 root 安装 Hermes,用专门的 hermes 用户安装。官方文档也说明专门的无 sudo 服务用户安装是支持的,普通用户安装会把数据放在该用户的 ~/.hermes/ 下,而不是 /root/.hermes/。
0. 约定
以下命令默认你先用有 sudo 权限的管理用户登录服务器,不直接用 hermes 用户登录。
1. 更新系统并装基础依赖
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
curl git xz-utils ca-certificates gnupg lsb-release \
build-essential
Hermes 官方说 Linux 安装前至少要有 git、curl、xz-utils;而Python、Node、ripgrep、ffmpeg、uv 等安装器会处理,不需要手动装。
2. 创建专用用户和用户组
sudo adduser --disabled-password --gecos "" hermes
sudo passwd -l hermes
检查:
id hermes
ls -ld /home/hermes
预期类似:
uid=1001(hermes) gid=1001(hermes) groups=1001(hermes)
这一步的目的:Hermes 以后只拥有 /home/hermes 范围内的数据和权限,不继承你的主用户文件,也不直接拿 root 权限。
3. 不给 hermes sudo 权限
确认它不在 sudo 组:
groups hermes
如果看到 sudo,移除:
sudo gpasswd -d hermes sudo
原则:hermes 是服务用户,不是管理用户。后续需要系统级操作时,用你的管理用户执行。
4. 预装 Chromium/Playwright 系统依赖
Hermes 官方文档说,无 sudo 服务用户安装时,唯一真正需要 root 的部分通常是 Playwright/Chromium 的系统库依赖。先由管理员装好:
sudo apt install -y npm
sudo npx playwright install-deps chromium
说明:这不是安装 Hermes 本体,只是把浏览器自动化可能需要的系统库提前补齐,避免 hermes 用户安装时卡在权限上。
如果你确定完全不用浏览器工具,也可以跳过这一步,并在安装 Hermes 时用 --skip-browser。
5. 启用 hermes 用户的 systemd linger
后续我们会让 Hermes 作为常驻服务运行。先打开 linger:
sudo loginctl enable-linger hermes
检查:
loginctl show-user hermes | grep Linger
预期:
Linger=yes
6. 切换到 hermes 用户
sudo -iu hermes
确认当前用户和家目录:
whoami
pwd
预期:
hermes
/home/hermes
7. 安装 Hermes
推荐正常安装:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
如果你前面跳过了 Playwright/Chromium 依赖,或者暂时不需要浏览器能力,用:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser
安装器会把 Hermes 放在 hermes 用户自己的目录下,典型位置是:
/home/hermes/.hermes/hermes-agent/
/home/hermes/.local/bin/hermes
8. 修正 PATH
仍然在 hermes 用户下执行:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
确认命令可用:
which hermes
hermes --help
如果 which hermes 没结果,用绝对路径试:
/home/hermes/.local/bin/hermes --help
如果 hermes 只在 /home/hermes/.hermes/hermes-agent/ 目录下,则需要手动将其创建到 ~/.local/bin/hermes 下:
mkdir -p ~/.local/bin
ln -s ~/.hermes/hermes-agent/venv/bin/hermes ~/.local/bin/hermes
chmod +x ~/.hermes/hermes-agent/venv/bin/hermes
然后确认:
export PATH="$HOME/.local/bin:$PATH"
which hermes
hermes --help
如果能看到:
/home/hermes/.local/bin/hermes
就好了。
再把 PATH 写进 shell 配置:
grep -qxF 'export PATH="$HOME/.local/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
9. 跑健康检查
hermes doctor
如果提示配置缺失、provider 未配置,这在当前阶段可以接受;但不应出现 Hermes 命令不可用、Python 模块缺失、安装目录异常这类基础错误。
官方也建议用 hermes doctor 做诊断,常见问题包括 PATH 不对或调用了错误的 Python 环境。
10. 做一次最小启动验证
hermes
能进入 Hermes 交互界面,就说明本体安装成功。此时可以直接退出,不需要配置模型和 Slack:
Ctrl+C
或者按界面提示退出。
11. 回到管理用户
exit
12. 当前阶段不要急着加 Docker 组
先别执行:
sudo usermod -aG docker hermes
原因:传统 Docker 的 docker 组权限非常大,基本等价于能间接拿到宿主机 root。我们后面做 Docker sandbox 时再决定:
- 简单方案:把
hermes加入docker组,部署容易,但权限更大 - 更稳方案:给
hermes配 rootless Docker,隔离更好,但配置稍复杂
你的安全目标更偏稳,所以我建议后面单独处理 Docker sandbox,不混在 Hermes 本体安装里。
完成标准
到这里算 Hermes 本体安装完成:
sudo -iu hermes
which hermes
hermes doctor
hermes --help
都能正常执行即可。
下一步才进入:目录结构、profiles、Slack token、四个 systemd service、Docker sandbox。