我想在 amd64 机器上构建一个 armhf 包。我的armhf机器比我的amd64机器慢很多。
答案1
我们首先必须设置多架构环境(更多信息):
sudo dpkg --add-architecture armhf
sudo apt update
下载源码包(使用较少的举个例子):
apt-get source less
导航到该目录,最后构建包:
cd less-458
dpkg-buildpackage -us -uc -b --host-arch armhf
上面命令中的特殊标志是--host-arch
。其他标志的含义是:
- 我们没有签署源码包
- 我们没有签署 .changes 文件
- 我们正在进行仅二进制构建
这 3 个仅与那些构建公共存储库的人相关,例如 Debian 开发人员/维护人员。
答案2
如果您更关心便利性而不是速度,可以使用以下方法,该方法使用盖姆模拟 ARM 系统。
安装包含我们需要的工具的包,pbuilder-dist:
sudo apt install ubuntu-dev-tools
以下命令创建一个用于构建的 chroot,并创建它的 tarball(在本例中是用于 armhf 架构的 Debian 8 系统):
pbuilder-dist jessie armhf create
获取某些包的来源:
apt-get source bb
构建包:
pbuilder-dist jessie armhf bb_1.3rc1-8.3.dsc
在我的机器上,这大约需要 370 秒,而在我构建的 ARM 系统上,大约需要 250 秒。
答案3
在 Debian 9 中,使用 pbuilder:
pbuilder build --host-arch armhf foo.dsc
或构建:
sbuild --host=armhf foo.dsc
不,您不需要设置额外的 chroot。本机构建的常规 chroot 将起作用。
(sbuild
已经支持--host
很长时间了,随着时间的推移使用了各种方法;在0.227版本中pbuilder
添加--host-arch
,Debian 8用户可以在Jessie backports中找到所需的软件包。)