J'ai installé Ubuntu 14.04 et le SDK de développement Android actuel, qui contient des exécutables 32 bits. J'ai constaté que je ne pouvais pas exécuter ces fichiers binaires 32 bits. Essayer de les démarrer à partir de bash me donne une erreur:
$ ./adb
bash: ./adb: No such file or directory
C'est là cependant:
$ 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.
Autrefois, on pouvait simplement installer des bibliothèques 32 bits sur Ubuntu 64 bits pour obtenir un support 32 bits, mais cela ne semble plus fonctionner.
Comment exécuter des applications 32 bits sur un Ubuntu 14.04 64 bits?
Réponses:
Pour exécuter un fichier exécutable 32 bits sur un système multi-architecture de Ubuntu 64 bits, vous devez ajouter l'
i386
architecture et installer les trois paquets de bibliothèquelibc6:i386
,libncurses5:i386
etlibstdc++6:i386
:Ou si vous utilisez Ubuntu 12.04 LTS (Precise Pangolin) ou une version antérieure, utilisez ceci:
Ensuite:
Si échoue, faites aussi
Après ces étapes, vous devriez pouvoir exécuter l'application 32 bits:
la source
lib32z1
, mais j'ai remarqué qu'il tirait dans libc6-i386 (distinction, remarquez le trait d'union, pas le colon).libc6:i386
,libncurses5:i386
,libstdc++6:i386
sont nouvelle version et mettre manuellement installé. Mais après cela il dit: "Soma packages could not be installed.This may mean you have requested impossible situation or you are using unstable distribution ...
" et dépendances non satisfaites:libstdc++6-4.4-dev:i386
dépendg++-4.4:i386
(ne sera pas installé). conflits:libstdc++6-4.4-dbg:i386
... et d'autres conflits à propos delibstdc++6-4.4/6/7
etc. Qu'est-ce qui ne va pas ou dois-je le laisser tel quel?"Aucun fichier ou répertoire de ce type" peut apparaître lorsque vous avez votre binaire, mais il manque certaines bibliothèques. Si vous installez le
build-essential
paquet, vous aurez laldd
commande disponible. Cette commandeldd ./adb | grep not
vous montrera quelles bibliothèques sont manquantes. Installez simplement ces bibliothèques dans i386 arch avec apt. Comme ceci:apt-get install libmissing:i386
Attention, certains paquets bogués essaieront de supprimer les sapins de version 64 bits.la source
Et si vous voulez utiliser "adb", il existe un paquet pour cela:
Et à propos des bibliothèques 32 bits - seulement:
sera suffisant.
la source
En plus de l'excellente réponse de Zanna et Avinash Raj, j'ai également dû installer gcc-multilib:
C'est peut-être parce que je voulais exécuter une ancienne version de gcc sur 64 bits.
la source
Juste un ajout à Zanna: Ce qui suit a résolu le problème du studio android "impossible d'installer des bibliothèques":
$ sudo apt-get install initscripts tzdata libdb1-compact
Ceci remplace la bibliothèque manquante libstdc ++ 6-i386, probablement parce que le paquet a été obsolète. Je ne sais pas pourquoi cette bibliothèque spécifique était importante.
la source