Unter Ubuntu wird beim Versuch, einen Befehl auszuführen, die Fehlermeldung "Keine solche Datei oder solches Verzeichnis" angezeigt.
Ich habe mit überprüft ls -la
, die Datei adb
ist da und es hat "x" -Flag Warum bekomme ich also ein "Keine solche Datei oder 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
file adb
Antworten:
Es ist eine ausführbare Datei, in der die erforderlichen Bibliotheken fehlen. Verwenden Sie, um
ldd
zu sehen, was benötigt wird, und geben Sie diese Dateien an.quelle
Android SDK erfordert 32-Bit-Bibliotheken. Sie sind wahrscheinlich auf 64-Bit und benötigen die 32-Bit-Bibliotheken. Hier finden Sie die Anweisungen zur Fehlerbehebung von developer.android.com
Für Ubuntu 13.10 (Saucy Salamander) und darüber, installieren Sie das
libncurses5:i386
,libstdc++6:i386
undzlib1g:i386
Pakete mit apt-get:Installieren Sie für frühere Versionen von Ubuntu das
ia32-libs
Paket mit apt-get:quelle
ist auch nötig für mich.
quelle
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.
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 die Standard-Shell mit von Bindestrich zu Bash geändert habe
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
quelle
Auf einer neuen Xubuntu 13.10 x64-Installation muss ich Folgendes
adb
ausführen:Und auch
zlib1g:i386
umaapt
Arbeit zu machen .und wenn Sie noch etwas vermissen, verwenden Sie:
quelle
sudo dpkg --add-architecture i386; sudo apt-get update
das super geklappt , aber ich musste anrufen , um libstdc ++ 6: i386 verfügbar zu machenldd adb
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 nah ist und nichts mit dem Problem zu tun hat.
Übrigens, wenn Sie versuchen, einen wirklich nicht existierenden Befehl auszuführen (dh:
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.
quelle
Ubunto scheint einige Probleme mit der LSB-Kompatibilität zu haben. Versuchen Sie dies also, wenn Sie mit Ubunto arbeiten
Beachten Sie, dass ldd zeigt, dass alle Bibliotheken vorhanden sind, dies jedoch nicht.
quelle