Arch Linux 采用 ports 的构建系統,使用 PKGBUILD 文件建立描述信息,然后用 makepkg 命令搜索当前目录下的 PKGBUILD 文件,并且通过该文件中配置的规则下载所需要的资源,进行完整性检查,然后通过编写的打包规则编译成可执行的二进制程序包
详细打包流程建议配合 Arch wiki 上的打包教学和 PKGBUILD 规范一起食用
首先你需要一个已经安装base-devel
组件包的 Arch Linux 系统,其中包含了打包必备的 make
和 makepkg
工具
sudo pacman -S base-devel #安装 bash-devel
注册一个 AUR 帐号,并且在本地系统创建一个 AUR 仓库使用的 SSH 公钥,将其添加到 AUR 网页版的个人资料中
创建&編輯 ~/.ssh/config
文件,写入如下配置内容
Host aur.archlinux.org
IdentityFile ~/.ssh/teaper #teaper 是我的 AUR 用户名,你改成自己的
User teaper #你的用户名
这个配置就是告诉 git,如果是提交到 aur.archlinux.org
的仓库自动使用 teaper
这个用户的公钥进行验证
ssh-keygen -f ~/.ssh/teaper #为 teaper 生成公钥文件,同上改成你的用户名
cat ~/.ssh/teaper.pub #查看公钥信息,复制到 AUR 网页版个人资料中
如果需要更好的管理 AUR 软件包,只是有 pacman 是不够的,还需要 yaourt
或者更为优秀的 yay
,它可以帮助安装来自 AUR 中的软件包,以确定自己打包的程序没有问题
最后就是下载你需要打包的软件源码 ,针对不同语言编写的源代码进行编译,记录下所有依赖关系
./configure
make
make install
如果你是打包来自其他 Linux 发行版的 *.deb
这三步也不是必要的,你可以直接从项目的 README.md 文件中得到相关的依赖关系
如果是要打包已经在 Arch 上安装好的程序,可以直接使用 pactree
得到程序的依赖关系
AUR 仓库属于 Arch Linux 的社区仓库,不受 Arch Linux 的官方支持,也就是说 AUR 的软件无法使用 pacman
来进行安装,如果你希望你的社区仓库上架到官方仓库中,可以通过发邮件给 Arch 官方的并且通过官方打包人员的检测,或者等官方打包人员自行发现,上架官方仓库则意味着该仓库将得到持续的支持和更新