
ai-memory 的 Arch Linux AUR 打包实战双包发布、原生 systemd 服务与发布流程全解析【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memory本文以仓库 packaging/aur/README.md 为骨架结合PKGBUILD双包定义、systemd 单元文件、发布工作流与原生打包校验脚本完整讲解 ai-memory 在 Arch Linux 生态中的分发方式用户如何用 AUR 助手安装预编译二进制或源码包维护者如何完成本地集成测试与发布以及ai-memory与ai-memory-bin两个包各自承担的职责。读完本文你既能作为 Arch 用户一键装上原生版 ai-memory 并配置 systemd 系统/用户服务也能作为维护者复现整套发布与校验流程。ai-memory 是一个本地优先的长期记忆 MCP 服务器面向 AI 编码 Agent官方默认推荐 Docker 封装器运行。而 Arch Linux 用户有更原生的选择通过 AUR 安装ai-memory-bin预编译二进制或ai-memory本地源码构建获得/usr/bin/ai-memory与 systemd 单元文件让记忆服务作为系统级守护进程或用户级服务常驻后台与各类 Agent CLI 无缝对接。一、AUR 双包架构ai-memory-bin与ai-memory仓库在 packaging/aur/ 目录下维护了两套 AUR 包定义官方文档明确了二者定位包名安装方式适用场景ai-memory-bin从 GitHub Releases 下载预编译的 Linux x86_64/aarch64 二进制及捆绑文件最快安装无需本地 Rust 工具链ai-memory基于 GitHub 源码 tag 使用本地 Rust 工具链编译需要源码级构建同样支持 x86_64/aarch64需要特别注意的是这两个包的 PKGBUILD 文件并非 AUR 仓库的最终形态。文档明确说明 The files here are the source of truth for the AUR repos, but AUR still requires each package to be pushed to its own Git repository with a generated.SRCINFO。也就是说仓库内的 PKGBUILD 与 PKGBUILD-bin 是内容源头每次发布时工作流会基于它们改写版本号与校验和生成.SRCINFO后推送到独立的 AUR Git 仓库ai-memory与ai-memory-bin各一个。两个 PKGBUILD 的头部都有一段醒目的注释解释了仓库内pkgver/pkgrel/sha256sums是占位符# NOTE: pkgver/pkgrel and the sha256sums below are PLACEHOLDERS. # .github/workflows/release.yml copies this file at publish time and # rewrites all of them from the release tag before pushing to the AUR: # # sed -i -e s/^pkgver.*/pkgver${version}/ \ # -e s/^pkgrel.*/pkgrel1/ ... # # So the value here never reaches a user, and bumping it by hand fixes # nothing while going stale again at the next release.因此手动修改仓库内的pkgver并不会修复任何问题下次发布会被覆盖验证已发布包的真实信息应查询 AUR RPC 接口例如curl -s https://aur.archlinux.org/rpc/v5/info?arg[]ai-memory两包 PKGBUILD 的关键差异对比 PKGBUILD源码包与 PKGBUILD-bin二进制包可以看出设计上的分工ai-memory源码包pkgnameai-memory pkgver0.3.2 # 占位符发布时由工作流改写 pkgrel1 pkgdescLocal-first long-term memory MCP server for AI coding agents arch(x86_64 aarch64) license(MIT) depends(ca-certificates gcc-libs glibc) makedepends(cargo) optdepends(systemd: run ai-memory as a system or user service) backup(etc/ai-memory/config.toml etc/ai-memory/env) installai-memory.install options(!debug !lto) conflicts(ai-memory-bin) source($pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz) sha256sums(SKIP) # 占位符发布时替换为真实校验和ai-memory-bin二进制包pkgnameai-memory-bin _pkgnameai-memory pkgver0.3.2 # 占位符 pkgrel1 pkgdescLocal-first long-term memory MCP server for AI coding agents (prebuilt binary) arch(x86_64 aarch64) depends(ca-certificates gcc-libs glibc) provides($_pkgname$pkgver) conflicts($_pkgname $_pkgname-debug) backup(etc/ai-memory/config.toml etc/ai-memory/env) options(!strip !debug) source_x86_64($_pkgname-$pkgver-x86_64.tar.gz::$url/releases/download/v$pkgver/$_pkgname-linux-x86_64.tar.gz) source_aarch64($_pkgname-$pkgver-aarch64.tar.gz::$url/releases/download/v$pkgver/$_pkgname-linux-aarch64.tar.gz) sha256sums_x86_64(SKIP) sha256sums_aarch64(SKIP)几个设计要点运行时依赖一致两包都依赖ca-certificates、gcc-libs、glibc并将 systemd 列为可选依赖用于以系统/用户服务方式运行。互斥关系ai-memory声明conflicts(ai-memory-bin)ai-memory-bin声明provides(ai-memory$pkgver)且conflicts包含ai-memory与ai-memory-debug保证同一台机器上不会同时安装两个包而冲突。备份语义backup(etc/ai-memory/config.toml etc/ai-memory/env)让 pacman 在升级时把这两个关键配置文件作为.pacnew备份处理避免升级覆盖用户已有的配置与密钥。架构分流二进制包按架构拆分source_x86_64/source_aarch64各取对应平台的 release 归档options(!strip !debug)保留预编译二进制原样安装。构建与校验函数源码包的 PKGBUILD 定义了完整的prepare/build/check/package四个阶段prepare() { cd $pkgname-$pkgver export RUSTUP_TOOLCHAIN1.95 cargo fetch --locked --target $(rustc -vV | sed -n s/host: //p) } build() { cd $pkgname-$pkgver export RUSTUP_TOOLCHAIN1.95 export CARGO_TARGET_DIRtarget export TAILWIND_SKIP1 cargo build --frozen --release -p ai-memory-cli } check() { cd $pkgname-$pkgver export RUSTUP_TOOLCHAIN1.95 export CARGO_TARGET_DIRtarget export TAILWIND_SKIP1 # Pin CARGO_HOME to the real registry (populated by build()) before the # HOME override below points cargo at an empty ~/.cargo, or --frozen fails # to resolve the vendored registry it already downloaded. export CARGO_HOME${CARGO_HOME:-$HOME/.cargo} export HOME$srcdir/test-home mkdir -p $HOME cargo test --frozen --release -p ai-memory-cli --bin ai-memory }从源码结构可以解读出几处关键工程细节工具链锁定RUSTUP_TOOLCHAIN1.95将构建/测试固定到 Rust 1.95与仓库根目录的 rust-toolchain.toml 保持一致的版本策略。跳过前端构建TAILWIND_SKIP1指示 CLI 构建流程跳过 Tailwind CSS 处理Web 前端静态资源不在 AUR 源码包中重新生成。锁定依赖cargo fetch --locked与cargo build --frozen依据 Cargo.lock 精确解析依赖保证 AUR 构建与上游 CI 产物一致。测试阶段陷阱规避check()先把CARGO_HOME钉到真实 registrybuild()已填充再重定向HOME避免--frozen因找不到已下载的 registry 而失败——这是一个值得所有 Rust AUR 包维护者借鉴的细节。只构建ai-memory-cli这一个 workspace 成员最终产物就是位于target/release/ai-memory的单一可执行文件。二、用户安装两条命令快速上手对于普通 Arch 用户安装非常直接使用 yay 等 AUR 助手yay -S ai-memory-bin # prebuilt binary, fastest on x86_64/aarch64 yay -S ai-memory # builds from source, supports x86_64/aarch64安装完成后官方 docs/install.md 的 Arch Linux native packages (AUR) 一节给出了完整的后续指引。两个包安装的是完全相同的运行时布局路径用途/usr/bin/ai-memory原生 CLI/服务器二进制/usr/share/ai-memory/hooks/打包的 hook 源码包供install-hooks使用/usr/lib/systemd/system/ai-memory.service系统级服务单元/usr/lib/systemd/user/ai-memory.service用户级服务单元/usr/lib/sysusers.d/ai-memory.conf创建ai-memory系统用户/usr/lib/tmpfiles.d/ai-memory.conf为系统服务创建/var/lib/ai-memory/etc/ai-memory/config.toml系统服务配置文件作为 pacman 备份文件跟踪/etc/ai-memory/env系统服务环境/密钥文件作为 pacman 备份文件跟踪这套布局正是由package()函数逐一落盘的详见下文第四节。注意二进制本身不会自行猜测系统/用户模式模式由单元文件显式指定二者的目录约定如下模式数据目录配置环境/密钥需要 sudo用户服务~/.local/share/ai-memory~/.config/ai-memory/config.toml~/.config/ai-memory/env否系统服务/var/lib/ai-memory/etc/ai-memory/config.toml/etc/ai-memory/env是文档特别提醒不要在同一个 bind 地址上同时运行两个服务。它们可以共存在磁盘上但默认只能有一个监听127.0.0.1:49374除非修改其中一个配置里的bind默认配置模板见 crates/ai-memory-cli/templates/config.default.toml其中bind 127.0.0.1:49374并支持AI_MEMORY_BIND环境变量覆盖。安装后的提示信息包通过 ai-memory.install 的post_install()钩子在安装完成后直接输出配置指引ai-memory is installed. User service: ai-memory --data-dir $HOME/.local/share/ai-memory --config $HOME/.config/ai-memory/config.toml init systemctl --user enable --now ai-memory.service System service: sudo systemd-sysusers /usr/lib/sysusers.d/ai-memory.conf sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/ai-memory.conf sudo -u ai-memory ai-memory --data-dir /var/lib/ai-memory --config /etc/ai-memory/config.toml init sudo systemctl enable --now ai-memory.service Configure LLM/API keys in ~/.config/ai-memory/env for the user service, or /etc/ai-memory/env for the system service. See docs/install.md for details.此外post_upgrade()会提示升级后刷新各 Agent 的已暂存 hook 脚本ai-memory was upgraded. If you use lifecycle hooks, refresh staged hook scripts for each agent: ai-memory install-hooks --agent claude-code --apply三、原生服务配置用户级与系统级用户级服务单用户工作站首选用户级服务在包安装后不需要任何 sudo所有状态都留在 home 目录。先初始化数据布局mkdir -p ~/.config/ai-memory ~/.local/share/ai-memory ai-memory \ --data-dir ~/.local/share/ai-memory \ --config ~/.config/ai-memory/config.toml \ init按需编辑配置与密钥文件LLM 聚合或 bearer 认证是可选项$EDITOR ~/.config/ai-memory/config.toml $EDITOR ~/.config/ai-memory/env纯本机 loopback 服务可以不开 bearer 认证如果确实需要可以生成 token 写入 env 文件TOKEN$(ai-memory generate-auth-token) printf AI_MEMORY_AUTH_TOKEN%s\n $TOKEN ~/.config/ai-memory/env启动并查看服务systemctl --user daemon-reload systemctl --user enable --now ai-memory.service systemctl --user status ai-memory.service journalctl --user -u ai-memory.service -f如果希望登出后服务仍然运行linger 模式loginctl enable-linger $USER验证 HTTP 服务器可达curl http://127.0.0.1:49374/mcp # 期望返回一个 JSON-RPC 错误说明服务器已可达对应的用户单元文件 packaging/systemd/ai-memory-user.service 内容如下可以看到路径全部使用%h占位符指向用户 home[Unit] Descriptionai-memory MCP server (user service) Documentationhttps://github.com/akitaonrails/ai-memory [Service] Typesimple EnvironmentFile-%h/.config/ai-memory/env ExecStart/usr/bin/ai-memory --data-dir %h/.local/share/ai-memory --config %h/.config/ai-memory/config.toml serve --transport http --enable-web Restarton-failure RestartSec5s NoNewPrivilegestrue PrivateTmptrue [Install] WantedBydefault.target注意EnvironmentFile-开头的减号表示该文件可选不存在也不报错密钥通过~/.config/ai-memory/env注入。serve --transport http --enable-web同时启动 MCP HTTP 端点和/webWeb 界面。系统级服务共享工作站 / 家庭服务器 / homelab系统级服务适合服务器需要独立于任何登录用户运行的场景。先确保包创建的用户与状态目录存在再以该服务用户身份初始化sudo systemd-sysusers /usr/lib/sysusers.d/ai-memory.conf sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/ai-memory.conf sudo -u ai-memory ai-memory \ --data-dir /var/lib/ai-memory \ --config /etc/ai-memory/config.toml \ init编辑系统配置与密钥sudoedit /etc/ai-memory/config.toml sudoedit /etc/ai-memory/env文档特别强调/etc/ai-memory/env安装为仅 root 可读权限 0640因为它可能存放 API 密钥请勿把它放进其他用户可读的备份或日志中。如需局域网暴露在/etc/ai-memory/config.toml中设置非 loopback bind 与 allowed hosts并在 env 中设置 bearer tokenbind 0.0.0.0:49374 allowed_hosts [homelab, 192.168.0.90, localhost, 127.0.0.1]TOKEN$(ai-memory generate-auth-token) printf AI_MEMORY_AUTH_TOKEN%s\n $TOKEN | sudo tee -a /etc/ai-memory/env启动与验证sudo systemctl daemon-reload sudo systemctl enable --now ai-memory.service sudo systemctl status ai-memory.service journalctl -u ai-memory.service -fcurl -sI http://127.0.0.1:49374/handoff # 设置了 AI_MEMORY_AUTH_TOKEN 时返回 401 Unauthorized系统单元文件 packaging/systemd/ai-memory.service 展示了完整的加固策略[Unit] Descriptionai-memory MCP server Documentationhttps://github.com/akitaonrails/ai-memory Afternetwork-online.target Wantsnetwork-online.target [Service] Typesimple Userai-memory Groupai-memory EnvironmentFile-/etc/ai-memory/env ExecStart/usr/bin/ai-memory --data-dir /var/lib/ai-memory --config /etc/ai-memory/config.toml serve --transport http --enable-web Restarton-failure RestartSec5s StateDirectoryai-memory StateDirectoryMode0750 NoNewPrivilegestrue PrivateTmptrue ProtectHometrue ProtectSystemstrict ReadWritePaths/var/lib/ai-memory [Install] WantedBymulti-user.target要点解读最小权限用户以专用ai-memory用户/组运行用户由 packaging/sysusers/ai-memory.conf 定义u ai-memory - ai-memory service user /var/lib/ai-memory /usr/bin/nologinnologin shellhome 指向数据目录。状态目录自动化StateDirectoryai-memory让 systemd 自动创建/管理/var/lib/ai-memory权限 0750与 packaging/tmpfiles/ai-memory.conf 的d /var/lib/ai-memory 0750 ai-memory ai-memory -互为补充两条路径都经过脚本校验。系统加固ProtectSystemstrictReadWritePaths/var/lib/ai-memory将整个文件系统设为只读仅放行数据目录ProtectHometrue、PrivateTmptrue、NoNewPrivilegestrue进一步收窄攻击面。自动重启Restarton-failureRestartSec5s保证进程异常退出后自动拉起。原生服务的 LLM Provider 登录LLM 功能聚合、lint、auto-improve均为可选。启用时不一定需要付费平台 API key可以使用已有的订阅Claude Pro/Max 经anthropic-oauth、ChatGPT Plus/Pro/Codex 经openai-oauth、GitHub Copilot 经copilot完成 OAuth 登录也可以完全跳过 LLM默认零-LLM 路径仍支持捕获、FTS 搜索与基于规则的摘要见 docs/local-embeddings.md。API key 型 Provider 写入对应 env 文件# 用户服务 printf AI_MEMORY_LLM_PROVIDERanthropic\nANTHROPIC_API_KEYsk-ant-...\n ~/.config/ai-memory/env systemctl --user restart ai-memory.service # 系统服务 sudoedit /etc/ai-memory/env sudo systemctl restart ai-memory.serviceOAuth 型 Provider 会把 token 写入所选数据目录登录命令必须与服务使用相同的--data-dir/--config组合# 用户服务 ai-memory \ --data-dir ~/.local/share/ai-memory \ --config ~/.config/ai-memory/config.toml \ auth login openai-oauth # 系统服务 sudo -u ai-memory ai-memory \ --data-dir /var/lib/ai-memory \ --config /etc/ai-memory/config.toml \ auth login openai-oauth原生安装后接入 Agent CLI服务跑起来后用install-mcp与install-hooks把 Agent 接到记忆服务上。本机 loopback 无 token 场景ai-memory install-mcp --client claude-code --apply ai-memory install-hooks --agent claude-code --applybearer 保护的场景需先导出端点与 tokenMCP URL 含/mcphook URL 是裸 originexport AI_MEMORY_SERVER_URLhttp://127.0.0.1:49374 export AI_MEMORY_AUTH_TOKEN$TOKEN ai-memory install-mcp --client claude-code --apply ai-memory install-hooks --agent claude-code --applyinstall-hooks会从打包目录/usr/share/ai-memory/hooks查找 hook 源码再以你的用户身份暂存可执行副本到~/.local/share/ai-memory/hooks/agent/。包升级后务必重新执行install-hooks --apply刷新暂存副本这也是post_upgrade()提醒的内容。四、package()函数包内文件布局的落盘逻辑两个 PKGBUILD 的package()函数内容一致完整定义了安装到系统哪些路径package() { cd $pkgname-$pkgver install -Dm0755 target/release/ai-memory $pkgdir/usr/bin/ai-memory install -Dm0644 README.md $pkgdir/usr/share/doc/$pkgname/README.md install -Dm0644 docs/install.md $pkgdir/usr/share/doc/$pkgname/install.md install -Dm0644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE install -dm0755 $pkgdir/usr/share/ai-memory cp -a hooks $pkgdir/usr/share/ai-memory/ install -Dm0644 crates/ai-memory-cli/templates/config.default.toml $pkgdir/etc/ai-memory/config.toml install -Dm0640 packaging/env/ai-memory.env $pkgdir/etc/ai-memory/env install -Dm0644 packaging/systemd/ai-memory.service $pkgdir/usr/lib/systemd/system/ai-memory.service install -Dm0644 packaging/systemd/ai-memory-user.service $pkgdir/usr/lib/systemd/user/ai-memory.service install -Dm0644 packaging/sysusers/ai-memory.conf $pkgdir/usr/lib/sysusers.d/ai-memory.conf install -Dm0644 packaging/tmpfiles/ai-memory.conf $pkgdir/usr/lib/tmpfiles.d/ai-memory.conf }对应到文档布局表二进制0755→/usr/bin/ai-memory文档与许可证 →/usr/share/doc/ai-memory/与/usr/share/licenses/ai-memory/hook 源码包hooks/目录整体复制到/usr/share/ai-memory/hooks/仓库中 hooks 目录包含 claude-code、codex、cursor、devin、gemini-cli、grok、opencode、pool、kiro-cli、kimi-code、command-code 等多个 Agent 的.sh/.ps1生命周期脚本install-hooks 正是从这里读取默认配置模板来自 CLI crate 的 config.default.toml含bind、allowed_hosts、[decay]、[sanitize]、[slots]、[consolidation]、[auto_improve]、[auth]等完整配置节且所有值均可用AI_MEMORY_前缀环境变量覆盖密钥环境文件0640仅 root 可读→/etc/ai-memory/env两套 systemd 单元、sysusers 与 tmpfiles 规则各归其位。五、发布质量门check-native-packaging.sh的非破坏性检查routine CI 运行 scripts/check-native-packaging.sh 提供非破坏性覆盖。该脚本的硬性约束是绝不修改宿主机的 /usr、/etc、/var、用户、组或服务全部针对临时备用根alternate root执行退出时清理。核心检查点包括shell 语法检查bash -n校验两个 PKGBUILD、ai-memory.install、bin/ai-memory与 distrobox 脚本。.SRCINFO生成验证在非 root 且有makepkg时运行makepkg --printsrcinfo确认元数据可被 AUR 正常解析。wrapper 路由检查用伪造的 docker 与原生二进制验证bin/ai-memory包装脚本能正确转发run、show、continue、workstreams、rename-workstream等命令参数。sysusers 行为在临时根上执行systemd-sysusers --root...断言 passwd/group 中出现ai-memory service user:/var/lib/ai-memory:/usr/bin/nologin与ai-memory组。tmpfiles 行为优先用--dry-run验证会创建/var/lib/ai-memory以 root 运行时实际创建并断言权限为 0750。systemd 单元解析systemd-analyze --root... verify校验系统单元并把用户单元复制成临时名放入 system 搜索路径解析因为某些发行版不支持--user与--root组合。关键路径与权限断言断言单元文件包含--data-dir /var/lib/ai-memory、--config /etc/ai-memory/config.toml、EnvironmentFile-/etc/ai-memory/env、StateDirectoryai-memory、ReadWritePaths/var/lib/ai-memory用户单元包含%h/.local/share/ai-memory与%h/.config/ai-memory/config.toml并校验 env 文件权限为 640。这套脚本把发布前常见低级错误路径拼错、权限不对、单元解析失败、sysusers/tmpfiles 行为漂移挡在 CI 层。六、本地集成测试可丢弃的 Arch distrobox 全流程验证发布前最重的一次验证是 scripts/test-native-arch-systemd-distrobox.sh——一个手工运行刻意不进 CI的完整集成测试。它创建一个一次性 Arch distrobox需要--init支持 systemd 容器把当前工作树安装到原生文件系统位置再用真实的systemctl启动打包服务做冒烟测试。主流程外层在宿主机创建容器并注入仓库卷distrobox create \ --yes \ --name ${BOX_NAME} \ --image ${IMAGE} \ --init \ --home ${HOST_TEST_HOME} \ --volume ${repo}:/work/ai-memory:rw容器内AI_MEMORY_NATIVE_TEST_INNER1时进入run_inside按顺序验证安装 Arch 构建/运行依赖与 Rust 1.95 工具链bash -n校验两个 PKGBUILD并用makepkg --printsrcinfo生成两份.SRCINFO检查元数据形态cargo build --release -p ai-memory-cli构建当前工作树按原生布局安装二进制、hooks、配置、env、systemd/sysusers/tmpfiles 文件systemd-analyze verify校验系统与用户单元systemd-sysuserssystemd-tmpfiles创建服务用户与/var/lib/ai-memory断言属主为ai-memory:ai-memory以ai-memory用户初始化/var/lib/ai-memory显式--data-dir/--config断言wiki与db子目录存在真实 systemd 冒烟sudo systemctl restart ai-memory.service轮询http://127.0.0.1:49374/web直至 HTTP 可达再跑status --json随后停服用户画像冒烟初始化$HOME/.local/share/ai-memory改 bind 端口为 49375用systemd-run在临时 systemd 监管下启动用户画像serve再次轮询验证hook 接入验证install-mcp --client claude-code --apply与install-hooks --agent claude-code --apply断言~/.local/share/ai-memory/hooks/claude-code/session-start.sh可执行且~/.claude.json已写入。脚本提供三个可调环境变量AI_MEMORY_NATIVE_TEST_BOX容器名、AI_MEMORY_NATIVE_TEST_IMAGE镜像默认docker.io/library/archlinux:latest、AI_MEMORY_NATIVE_TEST_KEEP_BOX1保留容器便于调试。测试失败时会把相关 unit 的 journalctl 尾部日志打印出来辅助定位。安全护栏脚本开头assert_inside_container会在非容器环境拒绝执行明确 refusing to run destructive native install test outside a container/distrobox防止误在宿主机上跑破坏性安装。官方文档的定位总结是distrobox 脚本是发布前最终的真实启动服务冒烟测试而 CI 的check-native-packaging.sh负责常规的非破坏性覆盖。七、维护者发布清单自动化工作流与手动兜底自动化发布路径GitHub release 工作流 .github/workflows/release.yml 在v*.*.*tag 上自动发布两个 AUR 仓库前提是配置了AUR_SSH_PRIVATE_KEY。其aurjob 的完整逻辑链是运行在 Arch Linux 容器中先校验 tag 版本与 Cargo.toml 中[workspace.package].version一致validate-versionjob下载 CI 构建的 Linux 二进制产物计算全新校验和源码 tarball 实时curl sha256sum二进制产物直接哈希本地 artifacts用sed把两个 PKGBUILD 中的pkgver、pkgrel1与各sha256sums占位符整体改写为本次发布值克隆 AUR 仓库ssh://auraur.archlinux.org/pkgbase.git拷入 PKGBUILD 与ai-memory.install执行makepkg --printsrcinfo .SRCINFO若无变更则跳过否则 commit 并 push分别发布ai-memory与ai-memory-bin两个仓库。check-secretsjob 会检测AUR_SSH_PRIVATE_KEY未配置时给出::warning::AUR_SSH_PRIVATE_KEY not set — skipping AUR publish.并跳过 AUR 发布。release body 也会自动生成 Arch 安装提示yay -S ai-memory-bin/yay -S ai-memory。每次新版本发布的官方清单为按常规流程在 Cargo.toml 中提升[workspace.package].version及所有 workspace crate 依赖版本运行本地门禁包括scripts/check-native-packaging.sh与可丢弃的 distrobox 集成测试推送匹配的版本 tag例如v0.3.0确认release工作流创建了 GitHub release配置了 Docker Hub secrets 则推送 Docker 镜像配置了AUR_SSH_PRIVATE_KEY则推送 AUR。手动兜底路径当 AUR job 被禁用或需要修复时官方给出了完整的手动发布步骤更新两个 PKGBUILD 文件中的pkgver并把pkgrel重置为1更新源码校验和——推送到 AUR 前必须把临时SKIP值替换为真实哈希AUR 不允许 SKIP 校验和的正式发布用makepkg --verifysource与makepkg -Ccf验证两个包变体在每个 AUR checkout 中用makepkg --printsrcinfo .SRCINFO生成.SRCINFOcommit 并推送到各自独立的 AUR 仓库ai-memory与ai-memory-bin。校验和获取速查文档给出了对应版本X.Y.Z的校验和获取命令versionX.Y.Z # 源码包 tarball curl -fsSL https://github.com/akitaonrails/ai-memory/archive/refs/tags/v${version}.tar.gz | sha256sum # 二进制包 release 产物 curl -fsSL https://github.com/akitaonrails/ai-memory/releases/download/v${version}/ai-memory-linux-x86_64.tar.gz.sha256 curl -fsSL https://github.com/akitaonrails/ai-memory/releases/download/v${version}/ai-memory-linux-aarch64.tar.gz.sha256自动化发布路径使用的正是同一套逻辑源码哈希实时计算二进制哈希取自 CI 构建产物。八、常见问题与运维提示包升级后 hook 失效AUR 包升级不会自动改写你 home 目录下已暂存的 hook 脚本务必按post_upgrade()提示执行ai-memory install-hooks --agent agent --apply刷新。用户/系统服务同时监听冲突二者磁盘布局可以共存但默认都监听127.0.0.1:49374同时启用会端口冲突需要共存时修改其中一个配置的bind参考 config.default.toml 中bind与allowed_hosts的注释说明。密钥文件权限/etc/ai-memory/env权限为 0640 且仅 root 可读API key、AI_MEMORY_AUTH_TOKEN都应只写在该文件或~/.config/ai-memory/env不要放进共享可读的位置。仓库内 PKGBUILD 的版本号是占位符查看已发布包的真实版本信息请用 AUR RPC/rpc/v5/info不要依赖仓库内pkgver字段。不要跳过校验和手动发布时sha256sums(SKIP)只是占位正式推送到 AUR 前必须替换为真实哈希否则会被 AUR 拒绝或被安全扫描标记。原生 vs Docker 的选择AUR 原生包提供/usr/bin/ai-memory与 systemd 单元适合希望服务常驻、免容器开销的场景仓库默认的 Docker 封装器路径依然是最快上手方式二者并存互不冲突。总结ai-memory 的 AUR 打包体系是一个完整的工程闭环ai-memory-bin与ai-memory双包覆盖预编译与源码构建两种安装偏好package()函数把二进制、hook 源、systemd/sysusers/tmpfiles 资产精确落盘到原生 FHS 布局CI 的check-native-packaging.sh提供非破坏性的路径/权限/单元解析校验手工运行的 distrobox 脚本在真实 systemd 环境中完成从构建、装包到服务启动与 Agent 接入的全链路冒烟最终由 release 工作流在打 tag 时自动改写 PKGBUILD、生成.SRCINFO并推送两个 AUR 仓库。对 Arch 用户而言yay -S ai-memory-bin一行命令即可获得与 Docker 等价的完整功能并以 systemd 服务的形式常驻后台为本地优先的 Agent 长期记忆提供原生底座。【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考