我正在尝试在运行中的amd64系统上交叉构建一个Debian/Ubuntu包来mips arch。我尝试过几种方法,从公共建筑到建筑,但我一直失败。关于后者,在刚刚安装的Debian 9上,我这样做了:
apt-get -y install sbuild
sbuild-createchroot --arch=mips --make-sbuild-tarball=/srv/chroots/wheezy-sbuild.tgz wheezy /srv/chroots/wheezy http://archive.debian.org/debian/但最后我得到了:
W: Failure trying to run: chroot /srv/chroots/wheezy dpkg-deb -f /var/cache/apt/archives/dpkg_1.16.18_mips.deb Version
W: See /srv/chroots/wheezy/debootstrap/debootstrap.log for details
W: Failure trying to run: chroot /srv/chroots/wheezy mount -t proc proc /proc
W: See /srv/chroots/wheezy/debootstrap/debootstrap.log for details
E: Error running debootstrap at /usr/sbin/sbuild-createchroot line 268.日志中包含:
chroot: failed to run command 'dpkg-deb': Exec format error
chroot: failed to run command 'mount': Exec format error我尝试过的所有方法在尝试不同的命令时都会出现Exec格式错误。
发布于 2019-05-16 20:02:48
以Debian 9为目标,交叉构建变得非常简单;Debian 8也可以这样做,但是针对Debian 7的目标有点复杂。(EmDebian在Debian 7之前就被删除了。)
然而,在任何能够运行QEMU的系统上都有构建mipsel Wheezy包的简单设置,在那里构建包仍然比在路由器上构建要快得多:
mipsel启动chroot中的一个debootstrap设置: sudo -arch=mipsel --foreign -variant=buildd\--包含=fakeroot,build-必不可少的\ wheezy ./wheezy mipsel-chroot\ http://archive.debian.org/debianbinfmt_misc支持: sudo apt安装qemu-用户-静态binfmt支持chroot中: sudo cp /usr/bin/qemu-mipsel-静态喘息-mipsel-chroot/usr/bin(它是静态链接的,所以工作正常)debootstrap:sudo chroot wheezy mipsel-chroot /debootstrap/debootstrap --第二级现在您可以使用chroot来构建包。手动地,将您的包复制到chroot中,输入它,并在安装了构建依赖项后使用dpkg-buildpackage进行构建。
要使用sbuild进行构建,至少需要向schroot注册chroot;添加一个名为/etc/schroot/chroot.d/wheezy-mipsel-sbuild的文件,其内容如下:
[wheezy-mipsel-sbuild]
description=Debian wheezy/mipsel autobuilder
groups=root,sbuild
root-groups=root,sbuild
profile=sbuild
type=directory
directory=/usr/var/backups/steve/wheezy-mipsel-chroot
union-type=overlay要使chroot正确地使用sbuild,可能还需要执行其他步骤,特别是在chroot中设置sbuild组并修复所有权。
https://unix.stackexchange.com/questions/519143
复制相似问题