Alguns pacotes não podem ser instalados usando multi-arch (pegue dois)

1

Nota : Esta pergunta foi feita anteriormente em askubuntu.com mas foi rejeitado como off-topic, e em vez disso, fui redirecionado para este site. Portanto estou repostando aqui.

Estou tentando compilar um programa no GNU / Linux para 32 e 64 bits ao mesmo tempo. No entanto, algumas dependências estão em conflito consigo mesmas, o que significa que não é possível instalar ambas as versões amd64 e i386 ao mesmo tempo.

Exemplo :

ubuntu@ubuntu:~$ sudo apt-get --no-install-recommends install libfltk1.3-dev:amd64 libfltk1.3-dev:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libfltk1.3-dev : Conflicts: libfltk1.3-dev:i386 but 1.3.2-4 is to be installed
 libfltk1.3-dev:i386 : Conflicts: libfltk1.3-dev but 1.3.2-4 is to be installed
E: Unable to correct problems, you have held broken packages.

Antes de optar por criá-lo separadamente (em um sistema operacional de 32 bits e 64 bits), pensei em perguntar se existe a possibilidade de alguma solução alternativa para isso. Isso foi testado no Ubuntu 14.04.

UPDATE : Este post destaca que o multiarch ainda não suporta a co-instalação de binários para diferentes arquiteturas (apenas bibliotecas e cabeçalhos). libfltk1.3-dev inclui / usr / bin / fltk-config , então é provável que este seja o motivo pelo qual ele está em conflito com várias instâncias dele mesmo.

    
por mYself 31.12.2015 / 13:06

1 resposta

2

libfltk1.3-dev não oferece suporte à co-instalação de variantes de vários arrays (ainda?), portanto, não é possível instalar os coentidões amd64 e i386 simultaneamente para criar programas de 32 e 64 bits mesmo tempo. (Para libfltk1.3-dev , isso ocorre porque o pacote inclui fltk-config ; para permitir a co-instalação de vários arrays, seria necessário extrair isso em um pacote separado.)

Atualmente, a abordagem mais versátil é usar chroots; se você está construindo pacotes Debian, então o sbuild suporta múltiplas arquiteturas prontas para uso, caso contrário você precisará usar < a href="https://wiki.debian.org/Debootstrap"> debootstrap manualmente.

    
por 31.12.2015 / 14:05