Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos
Existe uma arquitetura da máquina atual, como é mostrada pelo dpkg --print-
architecture. Ela está incorporada ao pacote dpkg instalado atualmente.
Para um pacote não modificado você pode escolher qual versão de arquitetura do
pacote deve ser instalada (por exemplo, "amd64" ou "i386").
Se um pacotes é marcado como "Multi-Arch: foreign", então ele pode satisfazer
dependências de um pacote de uma arquitetura diferente (por exemplo, "libglib2.0-
bin:amd64" irá satisfazer uma dependência da libglib2.0-bin para pacote de qualquer
arquitetura).
Para possibilitar que mais de uma versão de arquitetura de um pacote seja instalada
ao mesmo tempo (geralmente bibliotecas e pacotes -dev), os arquivos precisam ser
movidos para que eles não choquem. Esses pacotes são marcados como "Multi-Arch:
same".
Também exitem pacotes marcados como "Multi-Arch: allowed", que podem ser tratados
tanto como ":same" quanto ":foreign", dependendo da forma como ele são dependentes.
Disponibilidade
Você precisa de um dpkg e apt que entendam multiarquitetura.
No dpkg do Debian isso está presente desde a versão 1.16.2. No Ubuntu isso está
presente desde a natty (v1.15.8.10ubuntu1). Verifique vendo se o dpkg --print-
foreign-architectures é entendido.
Antes do apt 0.9, no Debian, o dpkg pode ficar emperrado (mas apenas se a
multiarquitetura for habilitada) durante as atualizações, quando não for dito qual
o pacote de arquitetura deve ser configurado pelo apt.
Por exemplo:
dpkg: error: --configure needs a valid package name but 'gcc-4.7-base' is not:
ambiguous package name 'gcc-4.7-base' with more than one installed instance
Executando dpkg --configure -a corrigirá isso.
Uso
Configurando arquiteturas
Para adicionar uma arquitetura extra (no Debian, do dpkg 1.16.2 em diante):
apt-get update
para atualizar a lista de pacotes disponíveis.
O arquivo de fontes do apt pode ser qualificado por arquitetura com a sintaxe
abaixo. Isso é muito útil na divisão de repositórios do Ubuntu. Isso normalmente
não é necessário no Debian, a menos que o seu repositório normal não faça espelho
das arquiteturas extras nas quais você está interessado.
Observação: Existe um bug nas versões do apt >= 0.9.7 e < 0.9.7.2 o qual significa
que não funcionou ao colocar "arch=armel,armhf" em uma linha - você precisa de duas
entradas separadas.
apt-get update
após adicionar novas arquiteturas.
Instalando/removendo pacotes
Para instalar um pacote de uma arquitetura que não seja padrão, apenas especifique
essa arquitetura na linha de comando:
dpkg -i pacote_versão_arquitetura.deb
dpkg -r pacote:arquitetura
Instalando dependências cruzadas
Para instalar dependências para construção de um pacote, antes da construção
cruzada ("cross-building") execute: