成为一名 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
3https://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