Instalé Ubuntu 14.04 y el SDK de desarrollo de Android actual, que contiene ejecutables de 32 bits. Descubrí que no puedo ejecutar esos binarios de 32 bits. Intentar iniciarlos desde bash me da un error:
$ ./adb
bash: ./adb: No such file or directory
Sin embargo, está allí:
$ ls -al ./adb
-rwxrwxrwx 1 thomas thomas 1231255 Jan 17 13:31 ./adb
$ file ./adb
./adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped. Same symptom for all the other 32-bit tools in the Android SDK.
En la antigüedad, uno simplemente podía instalar bibliotecas de 32 bits en Ubuntu de 64 bits para obtener soporte de 32 bits, pero eso ya no parece funcionar.
¿Cómo ejecuto aplicaciones de 32 bits en un Ubuntu 14.04 de 64 bits?
Respuestas:
Para ejecutar un archivo ejecutable de 32 bits en un sistema Ubuntu multi-arquitectura de 64 bits, hay que añadir la
i386
arquitectura e instalar los tres paquetes de bibliotecaslibc6:i386
,libncurses5:i386
ylibstdc++6:i386
:O si está utilizando Ubuntu 12.04 LTS (Precise Pangolin) o inferior, use esto:
Entonces:
Si falla, también
Después de estos pasos, debería poder ejecutar la aplicación de 32 bits:
fuente
lib32z1
, pero noté que se encontraba en libc6-i386 (distinción, nota el guión, no el colon).libc6:i386
,libncurses5:i386
,libstdc++6:i386
son la más nueva versión y se puso a instalado manualmente. Pero después de eso dice: "Soma packages could not be installed.This may mean you have requested impossible situation or you are using unstable distribution ...
" y dependencias no satisfechas:libstdc++6-4.4-dev:i386
dependeg++-4.4:i386
(no se instalará). conflictos:libstdc++6-4.4-dbg:i386
... y otros conflictos sobrelibstdc++6-4.4/6/7
etc. ¿Qué está mal o debería dejarlo como está ahora?"No existe tal archivo o directorio" puede aparecer cuando tiene su binario, pero carece de algunas bibliotecas. Si instala el
build-essential
paquete, tendrá unldd
comando disponible. Este comandoldd ./adb | grep not
le mostrará qué bibliotecas faltan. Simplemente instale estas bibliotecas en i386 arch con apt. De esta manera:apt-get install libmissing:i386
tenga cuidado, algunos paquetes con errores intentarán eliminar las versiones de 64 bits.fuente
Y si quieres usar "adb" hay un paquete para ello:
Y sobre bibliotecas de 32 bits, solo:
será suficiente.
fuente
Además de la excelente respuesta de Zanna y Avinash Raj, también tuve que instalar gcc-multilib:
Posiblemente esto se deba a que quería ejecutar una versión antigua de gcc en 64 bits.
fuente
Solo una adición a Zanna: lo siguiente ha resuelto el problema de Android Studio de "no se pueden instalar bibliotecas":
$ sudo apt-get install libdb1-compact tzdata initscripts
Esto reemplaza la biblioteca que falta libstdc ++ 6-i386, lo que probablemente se deba a que el paquete ha quedado obsoleto. No estoy seguro de por qué esta biblioteca específica era importante.
fuente