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


29

Ubuntuでは、コマンドを実行しようとすると「No such file or directory」エラーが表示されます。

で確認しました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

実行すると何が得られますかfile adb
jdigital

私はこの'$ファイルのADB ADBを:ELF 32ビットLSBの実行、インテル80386、バージョン1(SYSV)、動的にリンクされたが(共有ライブラリを使用しています)、GNU / Linuxの2.6.8のために、取り除かない'取得
マイケル・

回答:


16

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


11
私はこの '$ ldd ./adbは動的実行可能ファイルではありません'を取得します
マイケル

55

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

上記のUbuntu 13.10(生意気サラマンダー)とするために、インストールlibncurses5:i386libstdc++6:i386およびzlib1g:i386:apt-getをを使用してパッケージを

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

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

apt-get install ia32-libs

2
それはたくさんのものをインストールします。しかし、それは機能します。
トラビスリーダー

1
マイケルのように、「ファイル」は32ビットのELFバイナリであり、lddはそれが動的実行可能ファイルではないことを教えてくれました。これらの32ビットライブラリをインストールすると、問題が修正されました。
名誉ある

2
これまでで最も誤解を招くエラーメッセージ!o_O
MathematicalOrchid 14

re:{ここにdeveloper.android.comからのトラブルシューティングの指示があります}トラブルシューティングの指示がそこにありません
...-ruslo

4
sudo apt-get install --reinstall libc6-i386

私にも必要です。


3
それは助けたということですか?理由は何ですか?これはどこから入手しましたか?
タマラWijsman

3

32ビットubuntuから64ビットにマシンを切り替えた後も同じように見えました。Bashは、execute属性で明確に存在したファイルの「No such file or directory」を報告します。

sudo apt-get install --reinstall libc6-i386

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

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

sudo dpkg-reconfigure dash

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


2

新鮮なXubuntu 13.10 x64インストールではadb、次のコマンドで実行できました。

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

そしてまたzlib1g:i386作るためにaapt仕事を。

まだ何かを見逃している場合:

lld adb

これは私にとってはうまくいきましたsudo dpkg --add-architecture i386; sudo apt-get updateが、libstdc ++ 6:i386を利用可能にするために電話しなければなりませんでした
nicopico 14

私はあなたが意味を考えるldd adb
プラシャンスチャンドラ

1

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

hoffmancはそれを正しくするのに最も近かったのです。ダニエル・ベックからの答えが、それが近くさえなく、問題とは何の関係もないときに正しいとマークされる理由を私は本当に理解していません。

ちなみに、真に存在しないコマンドを実行しようとすると(つまり:

# fakecommand

fakecommand:command not foundを取得しますが、状況ではあまりはっきりしていませんが、実際にはadbからの出力が表示されます。


1

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$

Juliusという音声認識パッケージでこの問題が発生していました。これは私のためにそれを修正したものです。
Fireandlight27
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.