SuperAPI AI 工具集

nodejs-cli-aur-packager

部署与运维

查看项目

更新于 10-15 21:08

技能介绍

用途:把已发布到 npm registry 的 Node.js CLI 工具打包成 Arch Linux AUR 包,优先使用 npm tarball 作为上游源,避免从源码重新构建,以提高稳定性和可复现性。

适用边界:目标须是 CLI 工具且 package.json 含 bin;目标版本已发布到 npm;tarball 已含可运行产物(如 bin/、dist/)。若 tarball 不含产物、需完整构建或依赖原生编译链,应改用源码构建方案;纯库通常按 nodejs-* 规则单独处理。

主要能力与规则:先核对 npm 元数据再写 PKGBUILD;默认跳过上游 postinstall,仅在读过脚本并确认必需且安全时手动复现;多 bin 入口需为每个入口生成包装脚本;不假设 tarball 一定有 LICENSE;未实际运行 makepkg --printsrcinfo 和 makepkg -f 前不得声称包可用。

标准工作流:1) 用 npm view "<包名>@<版本>" version dist.tarball bin license engines dependencies optionalDependencies bundledDependencies scripts --json 收集元数据;2) curl -sL "<tarball-url>" -o "/tmp/<name>-<ver>.tgz" 后 sha256sum 计算校验和,写入 sha256sums,不用 SKIP;3) 检查 tarball 内 package/package.json、bin 入口、dist、LICENSE、node_modules 等;4) 按依赖情况决定 prepare(),推荐 npm install --cache "${srcdir}/npm-cache" --omit=dev --ignore-scripts --no-audit --no-fund;5) 撰写 PKGBUILD,arch=('any'),depends=('nodejs>=<engines.node 下限>'),仅当 prepare() 调用 npm 时加 makedepends=('npm'),主体装到 /usr/lib/nodejs-${pkgname},用 /usr/bin/<命令名> 包装脚本 exec node ... "$@";6) makepkg --printsrcinfo > .SRCINFO,不手写;7) makepkg -f 构建,可用 bsdtar -tf 检查产物、makepkg -si 后运行 <命令名> --help 验证。

包名与路径:纯 CLI 优先面向命令行的包名;纯库用 nodejs-<name>;scope 包 AUR 名可不保留 scope,但 tarball URL 保留 scope 路径。

高风险点:postinstall 修改用户目录、shell 配置或遥测;bin 为对象而非字符串;tarball 缺 LICENSE;engines.node 下限高于 Arch 稳定版;运行时依赖未安装导致启动崩溃。

完成后应返回 PKGBUILD 路径、.SRCINFO 路径、.pkg.tar.zst 路径(若已构建)、实际 sha256、真正执行过的验证命令及剩余风险。