交叉编译的Alpine Linux软件包

问题描述 投票:2回答:1

我正在尝试在x86_64主机上为armhf目标重建Alpine软件包。据我所知,正确的方法是克隆https://github.com/alpinelinux/aports并运行scripts/bootstrap.sh armhf创建chroot环境,然后可将该环境用于交叉编译软件包。到目前为止,我已经:

  • ${HOME}/packages/main添加到/etc/apk/repositories
  • 使用abuild-keygen -a创建了密钥
  • 使该密钥受cp ${HOME}/.abuild/*.pub /etc/apk/keys信任

但是引导脚本仍然失败:

c4a5a8fbf023:~/aports$ scripts/bootstrap.sh armhf
>>> bootstrap-armhf: Building cross-compiler
>>> binutils-armhf: Package is up to date
>>> gcc-armhf: abuild 3.2.0-r0
>>> gcc-armhf: Checking sanity of /home/builder/aports/main/gcc/APKBUILD...
>>> WARNING: gcc-armhf: g++ should not be in makedepends
>>> gcc-armhf: Analyzing dependencies...
ERROR: unsatisfiable constraints:
  .makedepends-gcc-armhf-0:
    masked in: cache
    satisfies: world[.makedepends-gcc-armhf]
  musl (missing):
    required by:
  musl-dev (missing):
    required by:
>>> ERROR: gcc-armhf: all failed
>>> gcc-armhf: Uninstalling dependencies...

[muslmusl-dev是为armhf构建的程序包,位于${HOME}/packages/main/armhf中。

有人能指出我正确的魔法来使它起作用吗?我错过了某个地方的相关文档吗?

cross-compiling alpine
1个回答
0
投票

嗯,我有同样的错误,但是我通过执行以下步骤解决了它:1. abuild-keygen -a,然后我将密钥保存为名称为[[mykey,并将密钥(私有和公共)都保存在当前目录中。2.然后将mykey.pub移至/ etc / apk / keys3.然后按CBUILDROOT=/path/to/buildroot ./scripts/bootstrap.sh armhf建立交叉编译工具链让我知道您是否再次失败。

© www.soinside.com 2019 - 2024. All rights reserved.