资讯动态

Anarlog AUR 包 anarlog-bin 实战指南:从 .deb 重打包安装到 PKGBUILD 自动化版本升级

发布时间:2026/9/16 16:04:55 来源:尧图企业网站定制
Anarlog AUR 包 anarlog-bin 实战指南从 .deb 重打包安装到 PKGBUILD 自动化版本升级【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog这篇技术指南围绕 Anarlog 官方仓库中的 AUR 二进制包anarlog-bin展开讲清它如何用makepkg将官方 Linux.deb重打包为 pacman 可安装的 Arch 系发行版软件包覆盖安装步骤、运行时依赖、Wayland 下 NVIDIA 空窗问题的排障手段以及scripts/update-aur-pkgbuild.mjs这套自动化版本升级工具的源码级实现读完即可在 Arch/Manjaro 等系统上完成安装与包维护。anarlog-bin 是什么由官方 .deb 重打包的 AUR 二进制包anarlog-bin 是 Anarlog 的 Arch Linux 软件包它不从源码构建而是直接重打包repackage官方发布的 Linux.deb发行版安装包适用于 Arch 及其衍生发行版如 Omarchy、EndeavourOS 和 Manjaro。包的核心元数据定义在 PKGBUILD 中当前仓库中各字段取值如下字段取值说明pkgnameanarlog-binAUR 包名以-bin后缀区分二进制重打包性质pkgver/pkgrel1.4.23/1版本号与发布修订号当前仓库快照值pkgdescAI notepad for meetings — local-first, E2EE desktop note-taking app包描述archx86_64、aarch64双架构支持licenseMIT许可证provides/conflictsanarlog与未来可能出现的源码构建包anarlog互相兼容占位options!strip保留二进制符号便于崩溃定位值得注意的是provides(anarlog)与conflicts(anarlog)的组合-bin包向 pacman 声明自己等价于anarlog因此无论用户安装的是 AUR 二进制包还是其他渠道的同名包pacman 都不会允许两者共存避免了双份安装。依赖清单从 PKGBUILD 的依赖声明可以看出 Anarlog 桌面端的运行时技术栈WebKitGTK GTK3 渲染界面PulseAudio/ALSA 兼容栈 PipeWire 处理音频OpenSSL 与 CA 证书保障网络传输depends( webkit2gtk-4.1 gtk3 libpipewire libpulse alsa-lib openssl gcc-libs ca-certificates desktop-file-utils xdg-utils hicolor-icon-theme ) optdepends( libayatana-appindicator: tray icon support pipewire: audio capture at runtime )可选依赖optdepends有两个关键点libayatana-appindicator托盘图标的必要前提。GNOME 等桌面环境已不再内置传统 AppIndicator 支持缺少该库时系统托盘不会显示 Anarlog 图标pipewire运行时音频采集对应 Anarlog 作为会议记录工具的核心录音能力。这两条同样记录在 .SRCINFO 中供 AUR 前端如yay、paru直接读取无需解析 PKGBUILD。下载源与校验和按架构分流PKGBUILD 用_releasedesktop_v${pkgver}变量拼接所有下载 URL因此版本升级时只需改pkgverURL 会自动跟着变。三个下载项分别是通用项LICENSE-${pkgver}从仓库desktop_v${pkgver}标签拉取许可证文本source_x86_64Release 资产anarlog-linux-x86_64.debsource_aarch64Release 资产anarlog-linux-aarch64.deb。与之一一对应的是三组 SHA-256 校验和sha256sums、sha256sums_x86_64、sha256sums_aarch64。makepkg下载完成后会逐一比对校验和任何一项不匹配都会中止构建这就是二进制重打包模式下供应链完整性的最后一道关卡。安装makepkg -si 两步走README 给出的安装流程只有两条命令克隆 Anarlog 仓库使用任意可用的克隆地址进入packaging/aur/anarlog-bin目录后执行makepkg -simakepkg -si的完整行为是按当前机器架构x86_64 或 aarch64从官方 Release 下载对应的.deb验证其 SHA-256 校验和然后交给 pacman 安装。拆开看 PKGBUILD 的package()函数实际动作非常轻量这正是重打包与构建的本质区别package() { tar -xzf data.tar.gz -C $pkgdir chmod -R urwX,gorX,go-w $pkgdir/usr install -Dm644 LICENSE-${pkgver} $pkgdir/usr/share/licenses/$pkgname/LICENSE }三行代码做了三件事tar -xzf data.tar.gz -C $pkgdir.deb本质是ar归档makepkg 下载后会自动解出其中的data.tar.gz即真实文件树路径为/usr/...这里直接把它解进包目录跳过 deb 的元数据与脚本把 Debian 文件树原样转化为 Arch 包内容chmod -R urwX,gorX,go-w $pkgdir/usr按 Arch 文件系统规范统一权限去除组/其他人写权限保留可执行位将许可证文件安装到/usr/share/licenses/anarlog-bin/LICENSE满足 Arch 的许可证规范。配合options(!strip)二进制不会被去符号用户遇到崩溃时可以用gdb直接拿到带符号的堆栈。运行排障Wayland NVIDIA 的空白窗口这是 README Notes 一节 给出的已知问题与排障手段值得完整保留托盘图标需要可选依赖libayatana-appindicator见上文依赖清单Wayland 下 NVIDIA 显卡出现空白窗口这是 WebKitGTK 的已知问题。Anarlog 应用默认禁用 DMA-BUF 渲染器来规避。如需覆盖该默认行为用以下命令启动WEBKIT_DISABLE_DMABUF_RENDERER0 anarlog如果窗口仍然是空白则再叠加禁用合成模式WEBKIT_DISABLE_DMABUF_RENDERER1 WEBKIT_DISABLE_COMPOSITING_MODE1 anarlog排障顺序即默认启动 → 尝试WEBKIT_DISABLE_DMABUF_RENDERER0→ 仍空白则1WEBKIT_DISABLE_COMPOSITING_MODE1。更新机制从 Release 到 AUR 的两级流水线README 的 Updating 一节 描述了 Anarlog 发布体系与 AUR 包的关系其中一条边界值得强调每次稳定版发布会自动完成 APT 仓库的部署与校验但向 AUR 注册表推送包是独立的、另行执行的步骤。自动流水线每次稳定版发布会自动打开一个标题为chore(packaging): publish Linux packages for version的 PR等待 CI 检查通过后自动合并。在 desktop_publish.yaml 中可以找到流水线对 AUR 包的自动处理步骤以发布版本号作为参数调用升级脚本- env: VERSION: ${{ needs.parse.outputs.version }} run: node scripts/update-aur-pkgbuild.mjs --version $VERSION同一个工作流随后继续部署并校验签名过的 APT 仓库。也就是说仓库内的PKGBUILD/.SRCINFO总是跟随发布流水线自动保鲜而 AUR 站点的包更新由维护者基于这些文件另行推送。手动升级update-aur-pkgbuild.mjs 源码剖析手动 bump 或推送 AUR 前刷新文件的命令是node scripts/update-aur-pkgbuild.mjs --version 1.4.9scripts/update-aur-pkgbuild.mjs 的完整 CLI 支持以下参数--version为必填可带desktop_v前缀脚本会自动剥离参数作用--version ver目标版本必填--dir path包目录默认为packaging/aur/anarlog-bin--sha-license hash覆盖 LICENSE 校验和跳过在线计算--sha-x86_64 hash/--sha-aarch64 hash覆盖对应架构.deb校验和它的核心流程分三步1. 解析校验和resolveChecksums从该版本的 Release 资产中拉取官方发布的.sha256文件取第一个 64 位十六进制字段作为两个.deb的校验和LICENSE 的校验和则从desktop_v${version}标签的原始 LICENSE 文件下载后本地计算 SHA-256。所有结果都会通过/^[0-9a-f]{64}$/严格校验格式非法直接抛错。2. 重写 PKGBUILDbumpPkgbuild由于 PKGBUILD 中所有 source URL 都用${pkgver}插值版本升级时只有pkgver、pkgrel和三个sha256sums*行会变化。pkgrel的规则是版本号变化 → 重置为1版本号不变但校验和变化 → 在现有pkgrel基础上 1同一版本重发.deb时递增发布号版本号、校验和都不变 → 保持原值。每一步替换都通过replaceOnce强制恰好匹配一行字段缺失会立刻报错而非静默跳过。3. 重写 .SRCINFObumpSrcinfo与 PKGBUILD 不同.SRCINFO 存的是展开后的值——source URL 里写死了字面版本号如desktop_v1.4.23因此升级时必须把旧版本号逐行替换为新版本。脚本重写完成后还会做一次全局兜底检查若结果中仍残留旧版本号直接抛出still references 旧版本异常防止漏改。这些行为的正确性由 scripts/update-aur-pkgbuild.test.mjs 中的单元测试守护覆盖了版本 bump 重置 pkgrel保留插值 URL 不动重写展开后的 .SRCINFO URL残留旧版本时报错PKGBUILD 字段缺失时报错等场景并且该测试文件被接入 ci.yaml 的持续集成任何对升级逻辑的改动都会先在 CI 中跑一遍回归。手工改动元数据后同步 .SRCINFO如果手动修改了 PKGBUILD 的包元数据依赖、描述、options 等需要在 Arch 机器上重新生成.SRCINFO保持二者一致makepkg --printsrcinfo .SRCINFO相关文件索引文件角色packaging/aur/anarlog-bin/README.md安装、排障与更新说明本文主体来源packaging/aur/anarlog-bin/PKGBUILD包定义依赖、下载源、校验和、打包函数packaging/aur/anarlog-bin/.SRCINFO展开后的包元数据快照供 AUR 前端读取scripts/update-aur-pkgbuild.mjs自动化版本升级脚本scripts/update-aur-pkgbuild.test.mjs升级脚本的单元测试.github/workflows/desktop_publish.yaml发布流水线中调用升级脚本的环节.github/workflows/ci.yamlCI 中对升级脚本测试的执行配置适用前提提示本文基于当前仓库快照pkgver1.4.23具体版本号与校验和会随发布滚动更新makepkg --printsrcinfo需在实际 Arch 环境或已安装 base-devel 的等价环境执行向 AUR 注册表推送包始终独立于仓库内的自动化流水线。【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价