web-dev-qa-db-fra.com

Erreur 'aucun fichier ou répertoire de ce type' dans le bas, mais le fichier existe-t-il?

Sous Ubuntu, le message d'erreur "Aucun fichier ou répertoire de ce type" ne s'affiche 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 est-ce que je reçois un 'Aucun fichier ou répertoire de ce type'?

~/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
29
michael

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.

16
Daniel Beck

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 Salamander) et les versions ultérieures, installez les paquets libncurses5:i386, libstdc++6:i386 et zlib1g:i386 à l'aide d'apt-get:

Sudo dpkg --add-architecture i386
Sudo apt-get update
Sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

Pour les versions antérieures d'Ubuntu, installez le paquetage ia32-libs en utilisant apt-get:

apt-get install ia32-libs
54
hoffmanc
Sudo apt-get install --reinstall libc6-i386

c'est aussi un besoin pour moi.

4
Shawe

Je voyais également la même chose après avoir basculé ma machine d'ubuntu 32 bits à 64 bits. Bash indiquerait "Aucun fichier ou répertoire de ce type" parmi les fichiers qui existaient clairement avec l'attribut execute.

Sudo apt-get install --reinstall libc6-i386

Correction du problème. Il s’agit de la "Bibliothèque GNU C: bibliothèques partagées 32 bits pour AMD64".

On dirait que c'est un bug dans bash. Notez que j’ai aussi changé le shell par défaut de dash en bash en utilisant

Sudo dpkg-reconfigure dash

avant d’essayer d’exécuter l’exécutable 32 bits. Donc, je ne suis pas sûr si le problème se serait produit avec le shell de tableau de bord par défaut

3
user240504

Sur une nouvelle installation de Xubuntu 13.10 x 64, j’ai eu adb sous:

Sudo apt-get install --reinstall libc6-i386
Sudo apt-get install libstdc++6:i386

Et aussi zlib1g:i386 pour faire fonctionner aapt.

et si vous manquez encore quelque chose, utilisez:

lld adb
2
Stéphane

Pour adb, assurez-vous que le SDK a été décompressé et que vous avez exécuté SDK Manager pour remplir complètement le SDK. De plus, assurez-vous que les éléments suivants sont installés: A.) JDK 6 ou supérieur B.) lib32stdc ++ 6 C.) lib32ncurses5

hoffmanc a été le plus proche de la vérité, je ne comprends pas vraiment pourquoi la réponse de Daniel Beck est marquée comme étant correcte alors qu’elle n’est même pas proche et qu’elle n’a rien à voir avec le problème.

Incidemment, si vous essayez d’exécuter une commande vraiment non existante (c.-à-d.:

# fakecommand

vous obtiendrez: fakecommand: commande introuvable, alors que dans votre cas, la sortie que vous voyez provient en réalité de adb, même si ce n'est pas très clair.

1
Justin Buser

Ubuntu semble avoir quelques problèmes avec la compatibilité LSB, alors essayez ceci si vous êtes sur Ubuntu

apt-get install lsb

Notez que ldd montrera en quelque sorte que toutes les bibliothèques sont là, mais elles ne le sont pas.

usmp-vm-lamp01$ ldd lmgrd
 linux-vdso.so.1 =>  (0x00007fffb33fe000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f10b0a48000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f10b074c000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f10b0535000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f10b0175000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f10aff71000)
 /lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007f10b0c67000)
usmp-vm-lamp01$ locate libpthread.so.0
/lib/x86_64-linux-gnu/libpthread.so.0
usmp-vm-lamp01$ locate libm.so.6
/lib/x86_64-linux-gnu/libm.so.6
usmp-vm-lamp01$ locate /lib64/ld-lsb-x86-64.so.3
usmp-vm-lamp01$
1
Mark Lakata