我大概算是个 NixOS 的"半吊子"用户——用了快一年了,flake 写得磕磕绊绊,每次改 configuration.nix 都提心吊胆。上个月看到 Hermes Agent 居然支持 Nix flake 部署,我第一反应是"终于有个工具认真对待 Nix 了",第二反应是"希望别又是个坑"。
事实证明,还真不是坑。但过程也不是一帆风顺的,中间折腾得我差点想回 Arch。
为什么不在 NixOS 上直接 pip install
先说说为什么不用 npm 或者 pip 装。很简单——NixOS 上很多东西装不了。你直接 pip install hermes-agent,大概率会碰到依赖库找不到动态链接库的错误。NixOS 的文件系统结构跟别的 Linux 发行版不一样,标准的安装方式经常水土不服。我之前在 NixOS 上装 Python 包,十次有三次会碰到这种问题,每次都得手动指定库路径,烦得要死。
Nix 的方式就不一样了,它把你需要的所有依赖都打包好,不管你系统里有什么没什么,都能装。这也是我当初选 NixOS 的原因之一——虽然学习曲线陡峭,但一旦跑通了,环境管理真的很舒服。
三层集成,我选了中间那层
Hermes 的 Nix 支持分三层:临时运行、用户安装、系统集成。一开始我图省事,直接用临时运行试试:
nix run github:hermesagent/hermes-agent
第一次跑要下载一大堆依赖,等了大概三四分钟。说实话当时有点紧张,因为 Nix 下载依赖的时候终端啥都不显示,就一个光标在那里闪。我还以为卡死了,差点 Ctrl+C。后来又等了一会儿,屏幕上开始刷刷刷地跑进度条了,我才放下心来。
好在最终跑起来了。输入 hermes --version,版本号出来了,那一刻还挺有成就感的。但 nix run 只是临时跑一下,退出就没了,不适合日常使用。就像你去餐厅试吃了一口,味道不错但总不能天天去试吃吧。
于是我试了用户级安装:
nix profile install github:hermesagent/hermes-agent
这一步倒是挺顺利的。装完之后 hermes 命令全局可用,这就舒服了。走到哪都能直接敲 hermes,不用每次 nix run 等半天。
然后跑 hermes setup,会让你配置 API key 和模型。这里有个小细节——NixOS 的环境变量管理跟别的系统不太一样,有些配置文件的路径也会有出入。如果你之前用过别的安装方式,可能会发现一些路径对不上。别慌,仔细看报错信息,基本都能解决。我当时碰到一个 Python 找不到的问题,后来发现是 Nix profile 的 PATH 和系统 PATH 有冲突,加了个符号链接就搞定了。
系统级集成——我还没敢试
Hermes 还支持在 configuration.nix 里做系统级集成,大概长这样:
{ config, pkgs, inputs, ... }:
{
environment.systemPackages = [
inputs.hermes-agent.packages.${pkgs.system}.default
];
}
然后 sudo nixos-rebuild switch 就行。听起来很简单对吧?所有用户都能直接用 hermes 命令,不用每个人单独装一遍。
但我没敢试。原因嘛……每次跑 nixos-rebuild 我都提心吊胆,万一配置写错了系统起不来,我得拿着 Live USB 去修。上个月我改了一下 GRUB 配置,结果重启之后进不了系统,折腾了两个小时才救回来。从那以后,凡是要改 configuration.nix 的操作,我都会先在虚拟机里测一遍。
所以如果你是 NixOS 新手,我建议先用用户级安装,等熟悉了再搞系统级集成。别学我一样一上来就想搞大的。
更新和日常维护
更新倒是挺方便的:
nix flake update
nix profile upgrade hermes-agent
两条命令搞定。Nix 的好处是升级是原子操作,万一新版有问题,回滚也很方便。这一点比我在 Arch 上遇到的"更新完系统起不来"的体验强太多了。Arch 用户应该懂我在说什么——滚完之后系统起不来,然后开始漫长的 arch-chroot 修复之旅。
另外如果你用 Home Manager 管理配置,Hermes 也能无缝集成到 home.nix 里,配置一次就行。我目前还没用 Home Manager,但看到官方文档里写了这个支持,感觉挺贴心的。
真实感受
说实话,Nix 的学习成本确实高。我到现在都不能说自己完全理解了 flake 的工作机制,每次写配置都是照着模板改。但一旦跑通了,那种"一份配置到处跑"的感觉真的很爽。我有两台电脑,都是 NixOS,Hermes 的配置两边同步,不需要重新装一遍。在公司电脑上配好了,回家电脑上直接能用,这种体验用了就回不去了。
Hermes 对 Nix 的支持比我预期的好很多。flake 结构清晰,文档也不少,遇到问题基本都能搜到解决方案。唯一让我有点不满意的是首次安装的下载速度——依赖包挺多的,如果你网络不太好,可能得等一会儿。我第一次装的时候下了快十分钟,看着那个进度条一点一点挪,差点以为自己的网断了。
总的来说,如果你已经是 NixOS 用户,强烈推荐用 flake 方式安装。省心、干净、可复现。如果你还没入坑 Nix……我建议你先想清楚要不要跳这个坑,因为一旦跳了就回不去了。
说真的,我现在连 apt 都不太会用了。