我的目标是交叉构建 debian 包,因此我在一些简单的东西上进行测试 - ncurses。
我遵循包含两个命令的指南: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch. 运行以下命令:
xbuild-chroot-setup precise /srv/chroots/precise-cross
cp /usr/share/doc/sbuild/examples/example.sbuildrc /root/.sbuildrc
sbuild-update --keygen
sbuild --host=armhf -d precise -c precise-i386-sbuild ncurses_5.9-4
并收到消息:
...
Cross-deps: Running apt-get -aarmhf build-dep ncurses
Reading package lists...
Building dependency tree...
Reading state information...
The following packages have unmet dependencies:
debhelper : Depends: dpkg-dev (>= 1.16.0) but it is not going to be installed
Depends: binutils but it is not going to be installed
E: Build-dependencies for ncurses could not be satisfied.
Failed to get cross build-deps
...
一开始我想手动 chroot 并安装 debhelper,但结果更糟了。所以这不是正确的方法。
...
Unpacking gcc-4.6-multilib:armhf (from .../gcc4.6-multilib_4.6.3-1ubuntu5_armhf.deb) ...
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/cpp-4.6_4.6.3-1ubuntu5_armhf.deb
/var/cache/apt/archives/cpp_4%3a4.6.3-1ubuntu5_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
E: Failed to process build dependencies
Failed to get cross build-deps
...
如何解决这个问题?
答案1
我最好的猜测是这些包要么在 repo 中不可用,要么与依赖项不兼容。您可以尝试添加一个可以满足该包所有依赖项的 repo。