実行可能ファイルを実行しようとすると、file not found
エラーが発生します。時々それは何も言わないが何もしない。
たとえば、./blah-blah.bin
を実行すると、ファイルがそこにあるのにファイルを見つけることができません。 ./blah-blah-file-2.sh
を実行すると、無音になります。
注1:ファイルには+ xがあります。
注2:ルートも実行できません。
注3:/ usr/binからのすべてが実行されます。
注4:GUIから試すことはできません。コンソールにしかアクセスできません。
どうしたの?
アップデート:突然、一部のコマンド(ls
など)がfile not found
で失敗します。彼らは昨日働いた...
試してみてください
ldd ./alfresco-install.bin
出力を確認します。これは、ダイナミックライブラリが1つか2つ欠落しているように疑わしいように聞こえます。
マウントオプションを確認します。具体的には、noexecでマウントされているかどうかを確認します。
これが問題である場合、例えば/ tmpで、
Sudo mount -o remount,exec /tmp
それはスクリプトですか、それともバイナリ実行可能ファイルですか?
スクリプトの場合は、#!
行を確認してください。
シェルによっては、不正な#!
行のあるコマンドのエラーメッセージは、不足しているインタープリターではなくスクリプトを参照している場合があります。
たとえば、tcshを使用します。
% cat foo
#!/bin/no_such_interpreter
echo hello
% chmod +x foo
% ./foo
./foo: Command not found.
%
Bashを使用すると、エラーメッセージは異なります。
$ chmod +x foo
$ cat foo
#!/bin/no_such_interpreter
echo hello
$ ./foo
bash: ./foo: /bin/no_such_interpreter: bad interpreter: No such file or directory
$
#!
行が問題なく見える場合でも、行末に\r
文字があると失敗する可能性があります。ファイルがWindowsで作成された場合によく発生します。なに
head -1 blah-blah.bin | cat -A
見せて?
それでも問題が解決しない場合は、入力したコマンドを正確に示し、エラーメッセージを表示します.
編集:タイトルがバイナリ実行可能ファイルであることを示唆していることを理解しています。正確にはどのようなファイルですか?の出力は何ですか
file blah-blah.bin
?