arquitectura - Como instalar ia32-libs em Ubuntu 14.04 LTS(Trusty Tahr)



64bits 32bits (8)

A melhor resposta que eu já vi é Como rodar aplicativos de 32 bits no Ubuntu de 64 bits?

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./adb

Eu instalei o Ubuntu 14.04 (Trusty Tahr) ontem. Tudo parece bem. Mas quando tentei compilar algum código C, encontro o seguinte erro. O erro parece ser devido ao OS sem o suporte de arquitetura de 32 bits. A saída do erro é como seguindo:

/usr/bin/ld: i386 architecture of input file `./libsc.a(ftl_msg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_debug.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_str.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_cfg_common.o)' is incompatible with i386:x86-64 output

Eu costumava apt-get install ia32-libs quando eu estava usando o Ubuntu 12.04 (Precise Pangolin). Mas o que eu sei é que o Ubuntu removeu as ia32-libs desde o Ubuntu 13.10 (Saucy Salamander). Como posso resolver este problema?


Essas bibliotecas alternativas funcionaram para mim:

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

Eu tive o mesmo problema acima e a instalação sugerida pelo Eclipse :

Hint: On 64-bit systems, make sure the 32-bit libraries are installed:   
   "sudo apt-get install ia32-libs"    
or on some systems,  
   "sudo apt-get install lib32z1"   

Quando tentei instalar o ia32-libs, o Ubuntu solicitou a instalação de três outros pacotes:

$ sudo apt-get install ia32-libs  
Reading package lists... Done  
Building dependency tree         
Reading state information... Done  
Package ia32-libs is not available, but is referred to by another package.  
This may mean that the package is missing, has been obsoleted, or  
is only available from another source  
However the following packages replace it:  
  lib32z1 lib32ncurses5 lib32bz2-1.0  

E: Package 'ia32-libs' has no installation candidate  
$   
$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0    

Com o Android Studio e o intellij, eu também tive que instalar a versão de 32 bits do libstdc ++ 6:

sudo apt-get install lib32stdc++6

Instale a biblioteca múltipla do gcc.

sudo apt-get install gcc-multilib

Para mim, tenho que correr

sudo dpkg --add-architecture i386

antes de executar a resposta de Mike Tang. Caso contrário, não posso instalar o ia32-libs.


Uma solução é adicionar o caminho do pacote Debian correspondente ao seu repositório. Para isso, digite os comandos abaixo:

echo "deb ftp.us.debian.org/debian wheezy main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install ia32-libs-i386

A primeira linha escreve no final do arquivo sources.list o caminho do pacote. Isso funciona para mim. Eu queria que isso te ajudasse.


Basta instalar a versão de 32 bits do programa, em vez da versão de 64 bits.

Isso é muito mais seguro do que instalar pacotes que não são destinados à distribuição em mãos.

Recebi esta sugestão das instruções de instalação do Google Earth para o Ubuntu 14.04 . O Google Earth costumava empregar ia32-libs no Ubuntu 12.04 de 64 bits.

Citando o webupd8.org :

O pacote ia32-libs não está mais disponível no Ubuntu, começando com o Ubuntu 13.10. O pacote foi substituído pelo suporte multiarch, então você não precisa mais dele, mas alguns pacotes de 64 bits (na verdade, aplicativos de 32 bits) ainda dependem deste pacote e, por causa disso, eles não podem ser instalados no Ubuntu 14.04 ou 13.10, 64 bits [...]

A "correção" ou, mais especificamente, a maneira correta de instalar esses aplicativos que dependem de ia32-libs é simplesmente instalar o pacote de 32 bits no Ubuntu 64bits. Claro, isso instalará alguns pacotes de 32 bits, mas é assim que funciona o multiarch.

O problema com alguns programas (como o Google Earth) é que o pacote de 32 bits não suporta multiarch. Conseqüentemente, algumas dependências de 32 bits precisam ser instaladas manualmente para que a versão de 32 bits do programa seja executada no Ubuntu de 64 bits.

sudo dpkg --add-architecture i386 # only needed once
sudo apt-get update
sudo apt-get install libfontconfig1:i386 libx11-6:i386 libxrender1:i386 libxext6:i386 libgl1-mesa-glx:i386 libglu1-mesa:i386 libglib2.0-0:i386 libsm6:i386

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
rm /etc/apt/sources.list.d/ia32-libs-raring.list
apt-get update
exit

Se você estiver na China, você pode modificar "raring" para "preciso" (para o Ubuntu 13.04 (Raring Ringtail) e o Ubuntu 12.04 LTS (Precise Pangolin) , respectivamente). Eu instalei Beyond Compare no Ubuntu 14.04 (Trusty Tahr).





x86