Como posso instalar as versões de 32 e 64 bits do mesmo pacote -dev?

11

Estou tentando instalar libsqlite3-devpara ambos i386e amd64na mesma máquina Ubuntu 12.04. Estou desenvolvendo um aplicativo que usa o sqlite3 e quero compilar e testar as versões de 32 e 64 bits.

No entanto, parece que o libsqlite3-dev:i386pacote é incompatível com o libsqlite3-dev:amd64, pois aptcontinua querendo remover um quando instalo o outro.

Existe uma maneira de instalar os dois no mesmo sistema?

Wim
fonte

Respostas:

5

Você não pode instalar os dois pacotes -dev no mesmo sistema ao mesmo tempo. Você pode instalar apenas um ou outro, pois eles contêm alguns dos mesmos arquivos. O arco múltiplo não habilita o suporte à compilação cruzada, que é o que você está tentando fazer. Se você instalasse a :i386versão do pacote de desenvolvimento sqlite e construísse com o compilador de 64 bits, quase certamente terá uma compilação quebrada como resultado.

Sua melhor aposta é compilar em um chroot ou VM de 32 bits, para criar a versão de 32 bits.

dobey
fonte
Os arquivos de cabeçalho estão de fato nos dois pacotes, mas seu conteúdo é idêntico. Ainda mais, para outros -devpacotes, como os zlib1gque também possuem arquivos compartilhados (e idênticos), é possível instalar as duas versões simultaneamente.
Wim
1
Acabei de instalar ambos os pacotes, isso não pareceu quebrar nada e agora posso criar (e executar corretamente) ambas as versões. Este é apenas um caso do mantenedor do pacote declarando um conflito em que não há realmente um?
Wim
0

Pessoalmente, não considero instalações forçadas, nem como último recurso. Eu acho que você pode achar o pbuilder bastante útil. Aqui está um HOWTO para isso. Você pode até instalar distribuições diferentes para esse fim e criar um script do processo de construção para diferentes destinos ao mesmo tempo.

http://ubuntuforums.org/showthread.php?t=206382

Portanto, você pode até deixar todos os pacotes de desenvolvimento desinstalados. Eles são instalados nessa instalação temporária do chroot.


fonte