我的第一个 aur 包

成为一名 ArchLinux 用户是幸运的 因为可以说 btw I use Arch , aur 上面 “什么都有” 是我坚信的。我也一直享受着它给我带来的便利。但是最近想为它做点小贡献,我也想自己打一个包,同时方便自己。


注意,这不是教程,要看教程请坚持看 Arch wiki,别的资料不宜为主。这里就是分享一下经历,自己不太熟悉的东西做点记录。

学习写 PKGBUILD

写 PKGBUILD 不算难,可以跟着 wiki 的步骤走,再看看一些 aur 实例就能动手打简单的包了。

我动手打的第一个包是 spx2wav,里面遇到的一个坑是校验码,校验码的章节起初我没有注意看,以为自己能直接搞定。用了各种奇葩的思路来获得这个 git 拷下来的文件夹的 md5 码之类的,均无果。后面注意到 Arch 论坛上的讨论 才明白并不需要校验 git 的东西。后来也在 telegram 的群聊中得到确认。回头发现有 wiki 上面其实有捷径可走,直接使用 makepkg -g 可以获得所有 source 的校验码。更好的方法是使用 pacman-contrib 提供的 updpkgsums 来直接更新校验码。

觉得写得差不多就可以试试 makepkg 了。得到的 pkg 目录的结构应该与 / 是一致的。如果顺利打包出来可以使用 pacman -Qlp [package file]pacman -Qip [package file] 看看是不是预期的。如果是,进一步使用 namcap 检查一下正确性。如果都没什么问题,可以安装该包,并且使用一下,确保其正确性。

发布到 aur

有包了之后,要发布当然是要先有账户了。去 aur 注册账户。接下来可能需要通读一下以下链接的内容

1
2
3
https://wiki.archlinux.org/index.php/Arch_User_Repository#Submitting_packages
https://wiki.archlinux.org/index.php/AUR_submission_guidelines
https://wiki.archlinux.org/index.php/Arch_package_guidelines

在搞定 ssh ,并且把 git 仓库弄得差不多后,可以准备提交。要注意, aur 常常只需要 PKGBUILD.SRCINFO,其中的 .SRCINFO 文件由 makepkg --printsrcinfo > .SRCINFO 自动生成,所以这个 git 仓库最好是要加 .gitignore。并且里面我推荐写入

1
2
3
*
!PKGBUILD
!.SRCINFO

这三行。熟悉 git 的话应该明白这里的意思。第一行的 * 表示忽略所有文件,而里面的 ! 表示特例,也就是 PKGBUILD.SRCINFO 是特例,这两个文件会被记录追踪。这样的方式在备份 home 里的 dotfiles 被很多用户采纳。

上传与传到 Github 差不多。传好很快就能看到自己的包在 aur 上了。

回炉重造

第一次打包,难免忽略一些细节,于是在发布到 aur 后,就有大神给我建议了。感谢大神对萌新的培养,我赶紧把缺的知识补上,然后更新这个包。还发现给我建议的大神维护了四页的包,里面有不少是我在用的。

安装使用

会用 aur 的你如果用 yay 作为你的 aur helper 的话使用 yay -S spx2wav 即可安装它。使用也很简单

1
spx2wav your.speex your.wav

我打的包的地址是 spx2wav

Welcome to my other publishing channels