如何编写 AUR 软件包

原理

PKGBUILD 是 Arch Linux 用于描述软件包构建过程的脚本文件。其可以将软件的编译和安装步骤模块化,以便复用与共享。

环境准备

安装必要的测试工具:

sudo pacman -S namcap pacman-contrib

更新校验码

更改需要下载的源文件后,需更新其校验码:

updpkgsums PKGBUILD

测试包生成

检查是否可以正常生成包:

makepkg -f

检查格式

对 PKGBUILD 文件和生成的包进行格式和安全检查:

namcap PKGBUILD
namcap XXX.pkg.tar.zst

提交到 AUR

1. 创建 SSH 密钥

运行以下命令为 AUR 生成新的密钥:

ssh-keygen -f ~/.ssh/aur

然后编辑 ~/.ssh/config ,添加:

Host aur.archlinux.org
  IdentityFile ~/.ssh/aur
  User aur

检查公钥:

$ cat ~/.ssh/aur.pub

2. 添加公钥

访问 AUR,在账户设置中添加刚刚生成的 SSH 公钥。

3. 初始化 Git 仓库

进入 PKGBUILD 所在目录,初始化仓库:

$ git -c init.defaultBranch=master init
$ git remote add origin ssh://aur@aur.archlinux.org/XXX.git

其中,XXX 是包名。

4. 提交包

生成 .SRCINFO 文件

在提交之前,运行以下命令生成 .SRCINFO 文件:

makepkg --printsrcinfo > .SRCINFO

添加和提交文件

将必要文件添加到 Git 并提交:

git add PKGBUILD .SRCINFO
git commit -m "Initial commit"

如果有自定义 patch 或其他依赖文件,也需一并添加。

推送到 AUR

运行以下命令将文件推送到 AUR:

git push