web-dev-qa-db-ja.com

「そのようなファイルまたはディレクトリはありません」というエラーがbashにありますが、ファイルは存在しますか?

Ubuntuでは、コマンドを実行しようとすると「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。

ls -laで確認しましたが、ファイルadbがあり、「x」フラグが付いています。それでは、「そのようなファイルまたはディレクトリはありません」と表示されるのはなぜですか。

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

必要なライブラリが欠落している実行可能ファイルです。 lddを使用して必要なものを確認し、これらのファイルを提供します。

16
Daniel Beck

Android SDKには32ビットライブラリが必要です。おそらく64ビットで、32ビットのライブラリが必要です。 developer.Android.com からのトラブルシューティング手順は次のとおりです。

Ubuntu 13.10(Saucy Salamander)以降の場合、apt-getを使用してlibncurses5:i386libstdc++6:i386、およびzlib1g:i386パッケージをインストールします。

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

Ubuntuの以前のバージョンでは、apt-getを使用してia32-libsパッケージをインストールします。

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

私にとっても必要です。

4
Shawe

マシンを32ビットUbuntuから64ビットに切り替えた後も同じように見えました。 Bashは、execute属性で明らかに存在するファイルの「そのようなファイルまたはディレクトリはありません」と報告します。

Sudo apt-get install --reinstall libc6-i386

問題を修正しました。これらは、「GNU Cライブラリ:AMD64用32ビット共有ライブラリ」です。

これはbashのバグのようです。また、デフォルトのシェルをダッシュ​​からbashに変更しました

Sudo dpkg-reconfigure dash

32ビットの実行可能ファイルを実行する前に。したがって、問題がデフォルトのダッシュシェルで発生したかどうかはわかりません

3
user240504

新しいXubuntu 13.10 x64インストールでは、adbを実行して次のように実行しました。

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

そしてzlib1g:i386を使用してaaptを機能させます。

それでも何か使用できない場合:

lld adb
2
Stéphane

Adbの場合は、SDKを解凍し、SDK Managerを実行してSDKを完全に設定してください。さらに、次のものがインストールされていることを確認してください:A.)JDK 6以上B.)lib32stdc ++ 6 C.)lib32ncurses5

hoffmancはそれを正しくするのに最も近かったのですが、Daniel Beckからの答えが近くなく、問題とは関係がないのに正しいとマークされている理由がよくわかりません。

ちなみに、あなたが本当に存在しないコマンドを実行しようとした場合(すなわち:

# fakecommand

fakecommand:コマンドが見つかりませんが、状況がはっきりしていなくても、実際の出力はadbから出力されます。

1
Justin Buser

UbuntoにはLSBの互換性に問題があるようです。Ubuntoを使用している場合は、これを試してください

apt-get install lsb

Lddは、すべてのライブラリが存在することをある程度示しますが、そうではないことに注意してください。

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