2012-06-12 21:26:53 +0000 2012-06-12 21:26:53 +0000
88
88

バイナリファイルを実行できません」というエラーを解決するにはどうしたらいいでしょうか?

SSHでログインすると、こんなのしか表示されません…

-bash: /usr/bin/id: cannot execute binary file
-bash: [: : integer expression expected

ここでは何もできませんでした。halt, poweroff, rebootなどのコマンドを実行してもcommand not foundが返ってきます。

どうしたら直るのでしょうか?私はDebian Squeeze Linuxを使用しています

回答 (7)

92
92
92
2012-06-13 03:07:20 +0000

通常、このエラーメッセージは、Linuxがファイルをシェルスクリプトとして認識していないか、実行ファイルとして認識していないことを意味します。

通常、原因は間違ったアーキテクチャで実行ファイルを実行していることです。

26
26
26
2012-06-13 01:27:14 +0000

sh の実行ファイル名ではなく ./executablefilename を使って実行してみてください。結局シェルスクリプトではありません。

9
9
9
2015-06-19 11:55:00 +0000

問題は、異なるプロセッサアーキテクチャ用のバイナリを実行していることです。バイナリのアーキテクチャを調べるには objdump (binutils から) を使うことができます。uname を使ってマシンのアーキテクチャをチェックすることができます。

例えば、FF.Communicator - chrome 用の firefox プラグイン (java アプレットを使ったページを実行できるようにするため) をインストールしたときに “cannot execute binary file” というエラーが発生しました。

  • objdump はバイナリが 64 ビットであることを示しています elf64-x86-64
  • uname は私のマシンが 32 ビットであることを示しています i686

  • objdump は私のマシンの動作バイナリが 32 ビットであることを示しています elf32-i386

これらのツールを使用すると、マシンやバイナリのアーキテクチャをチェックすることができます - intel アーキテクチャに限らず、あらゆるプロセッサのアーキテクチャをチェックできます。

Mac OSX の場合、"file" コマンドを使って特定のファイルのアーキテクチャ情報を調べることができます:

$ file filename_here
6
6
6
2012-06-12 21:51:34 +0000

私はここでいくつかの乱暴な推測をしていますが、以下のようなことが起こっているように見えます:

  1. SSH 経由でログインして、bash を実行したり、~/.profile が環境を設定したりしています (これは正常なことです)。2. ある時点で、あなたの uid を取得するために ~/.bashrc を実行しようとしますが、これは失敗し、整数式エラーを発生させ、 /bin/id を設定する前にスクリプトを終了させます。3. あなたの $PATH が設定されていないため、bash はフルパスを指定したコマンドしか実行できません。

/bin/id が失敗する根本的な原因を修正できるまで、$PATH を使用して export PATH=/bin:/usr/bin:/sbin:/usr/sbin の問題を修正してください。

0
0
0
2018-10-24 14:01:42 +0000

これは、bash スクリプトを使ってバイナリファイルを実行しようとしていることを意味します。

非常に簡単な例で言うと、

$ bash w
/usr/bin/w: /usr/bin/w: cannot execute binary file

のように `w’ コマンドを実行しようとすると、同じような方法で実行されているかもしれませんし、コードスニペットから見ても同じように見えます。

0
0
0
2012-06-12 22:29:57 +0000

バイナリファイルは、プロセッサが理解できるマシン命令で構成されています。あなたのオペレーティングシステムは、同じ実行ファイルが実行されることを意味するものではありません。 彼らは互換性のあるCPUが命令を理解することができなくなります互換性のあるプロセッサ命令セットの間で前後に移動すると、通常はうまく動作します。

-1
-1
-1
2018-07-25 08:43:45 +0000

64bit マシンで 32bit 版のインストーラをインストールしようとしているなど、間違ったバージョンのインストーラを実行している可能性があります。

関連する質問

6
10
19
12
9