Estou tentando configurar um ambiente de compilação para um pacote de software no Debian Jessie. Eu preciso produzir binários amd64, i386 e, eventualmente, armel e armhf do software. Seria legal se eu pudesse fazer uma compilação cruzada para TODAS as arquiteturas suportadas pelo Debian, que são muito mais do que isso, mas aquelas 4 são as que eu particularmente me importo.
Eu comecei com o Debian Debian Jessie e adicionei o i386 multiarch.
Tudo funcionou bem até eu ter que instalar o libpulse-dev
, que é uma dependência do software. Ao instalá-lo, recebi
The following packages have unmet dependencies: libpulse-dev : Depends: libglib2.0-dev but it is not going to be installed
com apt-get
e
The following packages have unmet dependencies: libglib2.0-dev : Conflicts: libglib2.0-dev:i386 but 2.42.1-1 is installed.
com aptitude
.
Parece que libglib2:amd64
e libglib2:i386
conflict - eles não podem ser instalados ao mesmo tempo. Alguém em #debian
da Freenode me disse que é uma limitação bem conhecida do multiarch.
Eu tenho que ter esse pacote instalado para fazer construções i386.
Estou pensando em remover o i386 multiarch, já que ele não funciona, e configurar o i386 chroot e construir a versão i386 do software dentro do chroot.
Essa solução chroot deve funcionar para i386, mas não funciona quando eu estiver produzindo binários para armel, armhf, arm64, mips e todas as outras arquiteturas - não serei capaz de fazer essas construções no armel, armhf, arm64, mips, etc. chroots desde que eu não posso executar executáveis arm e mips no meu processador.
Como posso produzir compilações do software que visam as arquiteturas amd64, i386, armel, armhf, arm64 e mips no mesmo sistema Debian Jessie de uma maneira consistente (ou seja, todas as compilações são feitas da mesma maneira, não "builds for one arquitetura use chroot, mas builds para outras arquiteturas usam multiarch ") sem ter libglib2
conflitos como eu faço ao usar multiarch?