Sur Ubuntu, j'obtiens une erreur «Aucun fichier ou répertoire de ce type» lorsque j'essaie d'exécuter une commande.
J'ai vérifié avec ls -la
, le fichier adb
est là et il a le drapeau 'x' Alors pourquoi j'obtiens un 'Aucun fichier ou répertoire'?
~/Programs/android-sdk-linux_x86/platform-tools$ ./adb
bash: ./adb: No such file or directory
~/Programs/android-sdk-linux_x86/platform-tools$ ls -la
total 34120
drwxrwxr-x 3 silverstri silverstri 4096 2011-10-08 18:50 .
drwxrwxr-x 8 silverstri silverstri 4096 2011-10-08 18:51 ..
-rwxrwxr-x 1 silverstri silverstri 3764858 2011-10-08 18:50 aapt
-rwxrwxr-x 1 silverstri silverstri 366661 2011-10-08 18:50 adb
-rwxrwxr-x 1 silverstri silverstri 906346 2011-10-08 18:50 aidl
-rwxrwxr-x 1 silverstri silverstri 328445 2011-10-08 18:50 dexdump
-rwxrwxr-x 1 silverstri silverstri 2603 2011-10-08 18:50 dx
drwxrwxr-x 2 silverstri silverstri 4096 2011-10-08 18:50 lib
-rwxrwxr-x 1 silverstri silverstri 14269620 2011-10-08 18:50 llvm-rs-cc
-rwxrwxr-x 1 silverstri silverstri 14929076 2011-10-08 18:50 llvm-rs-cc-2
-rw-rw-r-- 1 silverstri silverstri 241 2011-10-08 18:50 llvm-rs-cc.txt
-rw-rw-r-- 1 silverstri silverstri 332494 2011-10-08 18:50 NOTICE.txt
-rw-rw-r-- 1 silverstri silverstri 291 2011-10-08 18:50 source.properties
file adb
Réponses:
C'est un fichier exécutable qui manque les bibliothèques requises. Utilisez
ldd
pour voir ce dont il a besoin, puis fournissez ces fichiers.la source
Le SDK Android nécessite des bibliothèques 32 bits. Vous êtes probablement sur 64 bits et avez besoin des bibliothèques 32 bits. Voici les instructions de dépannage de developer.android.com
Pour Ubuntu 13.10 (Saucy Salamandre) et au- dessus, installez le
libncurses5:i386
,libstdc++6:i386
, et leszlib1g:i386
paquets en utilisant apt-get:Pour les versions antérieures d'Ubuntu, installez le
ia32-libs
package à l'aide d'apt-get:la source
est également nécessaire pour moi.
la source
Je voyais également la même chose après avoir changé ma machine d'ubuntu 32 bits en 64 bits. Bash signale «Aucun fichier ou répertoire de ce type» de fichiers qui existaient clairement avec l'attribut execute.
Correction du problème. Ce sont les "GNU C Library: bibliothèques partagées 32 bits pour AMD64"
On dirait que c'est un bug dans bash. Notez que j'ai également changé le shell par défaut de dash en bash en utilisant
avant d'essayer d'exécuter l'exécutable 32 bits. Je ne suis donc pas sûr que le problème se soit produit avec le shell de tiret par défaut
la source
Sur une nouvelle installation de Xubuntu 13.10 x64, j'ai pu
adb
exécuter avec:Et aussi
zlib1g:i386
pour faire duaapt
travail.et si vous manquez encore quelque chose, utilisez:
la source
sudo dpkg --add-architecture i386; sudo apt-get update
pour rendre libstdc ++ 6: i386 disponibleldd adb
Pour adb, assurez-vous que le SDK est décompressé et que vous avez exécuté le gestionnaire de SDK pour remplir entièrement le SDK. Assurez-vous également que les éléments suivants sont installés: A.) JDK 6 ou supérieur B.) lib32stdc ++ 6 C.) lib32ncurses5
hoffmanc était le plus proche de bien faire les choses, je ne comprends pas vraiment pourquoi la réponse de Daniel Beck est marquée comme correcte quand elle n'est même pas proche et n'a rien à voir avec le problème.
Par ailleurs, si vous essayez d'exécuter une commande vraiment inexistante (par exemple:
vous obtiendrez: fakecommand: commande introuvable, alors que dans votre situation, la sortie que vous voyez vient en fait de adb même si ce n'est pas très clair que c'est le cas.
la source
Ubunto semble avoir quelques problèmes avec la compatibilité LSB, alors essayez ceci si vous êtes sur Ubunto
Notez que ldd montrera en quelque sorte que toutes les bibliothèques sont là, mais elles ne le sont pas.
la source