CentOS上安装Hermes

这两天准备折腾Hermes,有几台服务器,正好用起来。服务器都用的CentOS。

查看了一下Python和node的版本,yum update之后,python –version为3.8.6,node –version 为20.15.0,python版本不够,需要更新。

干脆安装一下版本管理器,管理多个版本吧。按照搜索到的指令执行:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
exec $SHELL
pyenv install 3.12

执行最后一步时,是去下载https://www.python.org/ftp/python/3.12.13/Python-3.12.13.tar.xz文件并安装,结果是下载失败,报如下错误:

pyenv install 3.12
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Downloading Python-3.12.13.tar.xz...
-> https://www.python.org/ftp/python/3.12.13/Python-3.12.13.tar.xz
Installing Python-3.12.13...

BUILD FAILED (AlibabaCloud 3 using python-build 2.7.2-3-gb52a8e3f)

Inspect or clean up the working tree at /tmp/python-build.20260621104116.2054996
Results logged to /tmp/python-build.20260621104116.2054996.log

Last 10 log lines:
  File "/tmp/python-build.20260621104116.2054996/Python-3.12.13/Lib/ensurepip/__init__.py", line 200, in _bootstrap
    return _run_pip([*args, *_PACKAGE_NAMES], additional_paths)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/python-build.20260621104116.2054996/Python-3.12.13/Lib/ensurepip/__init__.py", line 101, in _run_pip
    return subprocess.run(cmd, check=True).returncode
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/python-build.20260621104116.2054996/Python-3.12.13/Lib/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/tmp/python-build.20260621104116.2054996/Python-3.12.13/python', '-W', 'ignore::DeprecationWarning', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmp1f5v8plg/pip-25.0.1-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmp1f5v8plg\', \'--root\', \'/\', \'--upgrade\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1.
make: *** [Makefile:2027: install] Error 1

询问Gemini后,提示是缺少必要的包的问题,给了两种方案,一种是设置忽略安全验证直接安装,一种是安装必要的依赖。我采用了安装必要依赖的方案。在服务器上执行如下脚本:

sudo dnf install -y gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

上述指令执行成功后,再次执行python12的安装指令:pyenv install 3.12

一台机器上执行成功,另外一台失败。执行成功的机器上,执行pyenv 3.12.13之后提示成功,但是执行python –versioin 的时候,仍然是旧版本,后来查询之后,发现需要执行指令:eval “$(pyenv init -)” ,source ~/.zshrc。执行此指令之后,再执行查看版本指令,现在对了。

参考文章《https://cloud.tencent.com/developer/article/2671206》来安装Hermes

1、克隆项目 git clone https://gitcode.com/GitHub_Trending/he/hermes-agent.git

2、将代码复制到安装目录

mkdir -p ~/.hermes
cp -r ~/hermes-agent ~/.hermes/hermes-agent

3、进入到安装目录并执行安装

cd ~/.hermes/hermes-agent && bash scripts/install.sh

我执行完这一步之后,日志出现如下信息:

✓ Main package installed (hash-verified via uv.lock)

✓ All dependencies installed

→ Installing Node.js dependencies (browser tools)...

⚠ npm install failed (browser tools may not work)

✓ Node.js dependencies installed

→ Installing browser engine (Playwright Chromium)...

⚠ Playwright does not support automatic dependency installation on alinux.

→ Install Chromium/browser system dependencies for your distribution, then run:

→   cd /root/.hermes/hermes-agent && npx playwright install chromium

→ Browser tools will not work until dependencies are installed. 

问Gemini,提示让执行一些指令来安装依赖,执行了如下指令:

安装chromium底层依赖:yum install -y nss alsa-lib atk at-spi2-atk cups-libs libdrm \
libXcomposite libXdamage libXext libXfixes libXrandr mesa-libgbm \
pango cairo libxshmfence

手动安装PlayWright chromium:npx playwright install chromium

安装完成后,再次执行harmes的安装指令,这次能正常完成了。