跳转至内容

Abuild

来自 ArchWiki

The abuild 工具提供构建和维护 Alpine Linux 软件包所需的脚本。

它可以在不依赖单独的 Alpine 安装(例如容器或虚拟机)的情况下,在 Arch Linux 系统上用于维护和构建 Alpine 软件包(在干净的 chroot 环境中)。

由于 Alpine 和 Arch Linux 之间的技术差异(例如在包管理器、init 系统和 C 库实现方面),在 Arch 系统上的 Alpine 干净 chroot 环境之外构建 Alpine 软件包是不可能的。因此,在 Arch 系统上**构建** Alpine 软件包时,只有 abuild rootbld 与使用相关。

安装

安装 abuild 包。

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)的路径可以通过修改该配置文件中的 SRCDESTREPODEST 参数来定制。

PACKAGERMAINTAINER 参数在创建新的 aports 时,分别由 newapkbuild 用于 APKBUILD 的“Contributor:”和“Maintainer:”注释。

用法

使用 abuildatools 工具的包打包工作流程的基本示例,首先是为软件包创建一个新的 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”页面