跨平台Debian软件包测试

时间:2015-05-05 01:51:32

标签: cross-platform dpkg

我正在尝试测试构建在x86 Linux系统上的Debian软件包,但这些软件包将在ARM体系结构上执行。我的{pre,post} {inst,rm}脚本失败,出现" exec格式错误"因为chroot环境中的/ bin / bash是flash文件系统的映像,它是ARM二进制文件,而不是x86二进制文件。

我正在寻找但找不到的是dpkg的一个选项,就像--root,但它没有使用chroot。我可能需要知道一些环境变量(?)的名称,其中包含--root参数的名称。

2 个答案:

答案 0 :(得分:0)

在chroot可执行文件中创建/bin/bash(以及其他所有内容)可能更容易。

在主机上安装qemu-user-static。这将为您提供静态版本中所有体系结构的QEMU用户空间模拟器 - 因此chroot中没有动态库的复杂性。它还配置binfmt支持以使用/usr/bin/qemu-arm-static执行ARM二进制文件。

/usr/bin/qemu-arm-static复制到chroot的/usr/bin。现在你应该能够正常chroot和运行程序。这样,您的Debian软件包就可以在其(仿真)本机环境中进行测试。

答案 1 :(得分:0)

除了使用qemu的好建议之外,从dpkg 1.18.5开始,您可以将--instdir--force-script-chrootless结合使用。根据维护者脚本,您可能需要调整它们以使用DPKG_ROOT环境变量。 dpkg手册页中有更多信息。