Abuild
abuild 工具提供了构建和维护 Alpine Linux 软件包所需的脚本。
它可以用于从 Arch Linux 系统维护和构建 Alpine 软件包(在干净的 chroot 环境中),而无需依赖单独的 Alpine 安装,例如容器或虚拟机。
由于 Alpine 和 Arch Linux 之间的技术差异(例如,在软件包管理器、init 系统和 C 库实现方面),在 Alpine 干净 chroot 环境之外的 Arch 系统上构建 Alpine 软件包是不可能的。因此,当在 Arch 系统上构建 Alpine 软件包时,只有 abuild rootbld
是相关的。
安装
atools 软件包提供了额外的工具,例如 apkbuild-lint(1) 和 apkbuild-fixer(1),它们也可能引起您的兴趣(请参阅 #用法)。
配置
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
参数进行自定义。
用法
使用 abuild 和 atools 工具的基本打包工作流程示例将从为软件包创建新端口并进入其目录开始
$ newapkbuild package_name && cd package_name
下一步将是 编辑 APKBUILD,然后运行 apkbuild linter(由 atools 软件包提供)
$ apkbuild-lint APKBUILD
然后可以运行 apkbuild fixer 来尝试自动修复 apkbuild-lint 提出的潜在警告(由 atools 软件包提供)
$ apkbuild-fixer APKBUILD
之后,为 APKBUILD source 数组中包含的源生成/升级校验和
$ abuild checksum
最后,在 Alpine 干净 chroot 环境中构建软件包
$ abuild rootbld
abuild rootbld
假设您的 APKBUILD 文件位于目录结构类似于 Alpine aports 的目录中。