Abuild
The abuild 工具提供构建和维护 Alpine Linux 软件包所需的脚本。
它可以在不依赖单独的 Alpine 安装(例如容器或虚拟机)的情况下,在 Arch Linux 系统上用于维护和构建 Alpine 软件包(在干净的 chroot 环境中)。
由于 Alpine 和 Arch Linux 之间的技术差异(例如在包管理器、init 系统和 C 库实现方面),在 Arch 系统上的 Alpine 干净 chroot 环境之外构建 Alpine 软件包是不可能的。因此,在 Arch 系统上**构建** Alpine 软件包时,只有 abuild rootbld 与使用相关。
安装
The atools 包提供了额外的工具,如 apkbuild-lint(1) 和 apkbuild-fixer(1),这些工具可能也很有用(参见 #Usage)。
配置
abuild 中**不**用于构建软件包的子命令应该可以直接使用(例如,生成/更新校验和、获取源、清理临时目录等,请参见 abuild(1) § COMMANDS)。
为了能够在干净的 chroot 环境中构建 Alpine 软件包,您需要使用 abuild-keygen 工具生成公钥/私钥 RSA 密钥对,并将您的用户添加到 abuild 用户组(该用户组在安装 abuild 包时创建)。
$ abuild-keygen -a -i
abuild 组的更改生效。可以根据需要和喜好选择性地编辑 /etc/abuild.conf 配置文件。例如,用于存储下载的源(默认是 /var/cache/distfiles)和构建的软件包(默认是 ~/packages)的路径可以通过修改该配置文件中的 SRCDEST 和 REPODEST 参数来定制。
PACKAGER 和 MAINTAINER 参数在创建新的 aports 时,分别由 newapkbuild 用于 APKBUILD 的“Contributor:”和“Maintainer:”注释。
用法
使用 abuild 和 atools 工具的包打包工作流程的基本示例,首先是为软件包创建一个新的 port 并进入其目录。
$ newapkbuild package_name && cd package_name
下一步是编辑 APKBUILD,然后运行 apkbuild linter(由 atools 包提供)。
$ apkbuild-lint APKBUILD
然后可以运行 apkbuild fixer 来尝试自动修复 apkbuild-lint(由 atools 包提供)发出的潜在警告。
$ apkbuild-fixer APKBUILD
之后,为 APKBUILD 源数组中包含的源生成/升级校验和。
$ abuild checksum
最后,在 Alpine 干净的 chroot 环境中构建软件包。
$ abuild rootbld
abuild rootbld 假定您的 APKBUILD 文件位于结构类似于 Alpine aports 的目录中。有关更多详细信息和使用示例,请参阅 Alpine Linux Wiki 的 “Abuild and Helpers”页面。