it-swarm.com.de

'Keine solche Datei oder Verzeichnis' Fehler in der Bash, aber die Datei existiert?

Unter Ubuntu wird der Fehler "Keine solche Datei oder solches Verzeichnis" angezeigt, wenn ich versuche, einen Befehl auszuführen.

Ich habe mit ls -la nachgesehen, die Datei adb ist da und hat das 'x'-Flag. Warum erhalte ich dann die Meldung' Keine solche Datei oder kein solches Verzeichnis '?

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

Es handelt sich um eine ausführbare Datei, in der die erforderlichen Bibliotheken fehlen. Verwenden Sie ldd, um zu sehen, was benötigt wird, und geben Sie diese Dateien an.

16
Daniel Beck

Android SDK erfordert 32-Bit-Bibliotheken. Sie sind wahrscheinlich auf 64-Bit und benötigen die 32-Bit-Bibliotheken. Hier sind die Anweisungen zur Fehlerbehebung von developer.Android.com

Installieren Sie für Ubuntu 13.10 (Saucy Salamander) und höher die Pakete libncurses5:i386, libstdc++6:i386 und zlib1g:i386 mit apt-get:

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

Installieren Sie für frühere Versionen von Ubuntu das Paket ia32-libs mit apt-get:

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

ist auch nötig für mich.

4
Shawe

Ich sah das auch, nachdem ich meine Maschine von 32-Bit-Ubuntu auf 64-Bit umgestellt hatte. Bash meldet "Keine solche Datei oder kein solches Verzeichnis" von Dateien, die eindeutig mit dem Ausführungsattribut vorhanden sind.

Sudo apt-get install --installiere libc6-i386 neu

Problem behoben. Dies sind die "GNU C Library: 32-Bit Shared Libraries für AMD64"

Scheint, als wäre dies ein Fehler in der Bash. Beachten Sie, dass ich auch die Standard-Shell mit von Bindestrich zu Bash geändert habe

Sudo dpkg-reconfigure dash

bevor ich versuchte, die ausführbare 32-Bit-Datei auszuführen. Ich bin mir also nicht sicher, ob das Problem mit der Standard-Dash-Shell aufgetreten wäre

3
user240504

Auf einer neuen Xubuntu 13.10 x64-Installation habe ich adb zum Ausführen mit:

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

Und auch zlib1g:i386, damit aapt funktioniert.

und wenn Sie noch etwas vermissen, verwenden Sie:

lld adb
2
Stéphane

Stellen Sie für adb sicher, dass Sie das SDK entpackt haben und führen Sie den SDK-Manager aus, um das SDK vollständig aufzufüllen. Stellen Sie außerdem sicher, dass Sie Folgendes installiert haben: A.) JDK 6 oder besser B.) lib32stdc ++ 6 C.) lib32ncurses5

hoffmanc war am nächsten dran, ich verstehe nicht wirklich, warum die Antwort von Daniel Beck als richtig markiert ist, wenn sie nicht einmal in der Nähe ist und nichts mit dem Problem zu tun hat.

Übrigens, wenn Sie versuchen, einen wirklich nicht existierenden Befehl auszuführen (d. H .:

# fakecommand

sie erhalten: fakecommand: command not found, wohingegen in Ihrer Situation die Ausgabe, die Sie sehen, tatsächlich von adb kommt, obwohl es nicht sehr klar ist, dass dies der Fall ist.

1
Justin Buser

Ubuntu scheint einige Probleme mit der LSB-Kompatibilität zu haben. Versuchen Sie dies also, wenn Sie mit Ubuntu arbeiten

apt-get install lsb

Beachten Sie, dass ldd zeigt, dass alle Bibliotheken vorhanden sind, dies jedoch nicht.

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