APKBUILD 示例:Go
Go 包策略
Go 1.6 之前的版本对依赖项的处理不佳(不太好)。alpine aports 中的每个软件包都应是可重现的(即 可重现构建)。许多 Go 项目仍然不支持正确的 vendor 处理,并且会从主分支拉取所有依赖项。因此,在不同时间跨度内构建的软件包可能会彼此不同(它们不是位对位相同的)。如果构建所用的源代码始终相同,我们可以防止这种情况(因此我们使用校验和来验证从上游项目获取的源代码 tarball)。
目前,Go 软件包可能属于以下 3 种情况
- 软件包没有 vendor 目录(或为空)。
- 软件包具有 vendor 目录并包含 vendor 文件。
- 软件包具有 vendor 目录、vendor 文件,但也包含所有依赖项。
待办事项:针对 #1 编写一些关于 glide 的内容
针对 #2 编写一些关于 glide 或其他软件包管理器的内容
针对 #3 只需执行 go build
允许剥离 go 二进制文件 https://github.com/golang/go/issues/1242