重複の可能性:
「そのようなファイルまたはディレクトリはありません」は、Optwareがインストールしたバイナリに依存します
小さなルーターボックスにebtablesを追加しようとしています。私は行って、正しいアーキテクチャ用にコンパイルされたバイナリを取得し、/sbin/
のボックスに入れました。 /sbin/ebtables
を実行すると、シェルは/bin/sh: /sbin/ebtables: not found
と言いますが、ls -l /sbin/ebtables
を実行すると、完全に表示されます。
-rwxr-xr-x 1 admin admin 4808 Aug 4 10:36 /sbin/ebtables
ここで何が起こっているかについてのアイデアはありますか?
依存関係がない可能性があります。特に、ELF
ヘッダーに設定されているランタイムリンカー(「プログラムインタープリター」)がシステムに存在しない場合は、このタイプのメッセージが表示されます。
これを確認するには、次のコマンドを実行します。
readelf -l your_executable|grep "program interpreter"
それがあなたに与えるものがあなたのシステムに存在しないか、依存関係が欠けている場合(ldd
で確認してください)、その奇妙なエラーメッセージが表示されます。
デモ:
$ gcc -o test t.c
$ readelf -l test|grep "program interpreter"
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
$ ./test
hello!
$ gcc -Wl,--dynamic-linker -Wl,/i/dont/exist.so -o test t.c
$ readelf -l test|grep "program interpreter"
[Requesting program interpreter: /i/dont/exist.so]
$ ./test
bash: ./test: No such file or directory