GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich den Fehler beheben, dass die Binärdatei nicht ausgeführt werden kann?

Normalerweise bedeutet diese Fehlermeldung, dass Linux die Datei nicht als Shell-Skript oder als ausführbare Datei erkennt.

Typischerweise ist die Ursache, dass eine ausführbare Datei auf der falschen Architektur ausgeführt wird – wenn Sie versuchen, ausführbare x86-Dateien auf einer ARM-CPU auszuführen, wird diese Meldung angezeigt.

Hat /usr/bin/id gemacht überschrieben werden?


Versuchen Sie, es mit ./executablefilename statt mit sh executablefilename auszuführen. Es ist schließlich kein Shell-Skript.


Das Problem besteht darin, dass eine Binärdatei für eine andere Prozessorarchitektur ausgeführt wird. Sie können objdump (von binutils) verwenden, um die Architektur von Binärdateien zu überprüfen. Sie können uname verwenden, um die Architektur einer Maschine zu überprüfen.

z.B. Bei der Installation von FF.Communicator - einem Firefox-Plug-in für Chrome (damit ich Seiten ausführen kann, die Java-Applets verwenden) bin ich auf diesen Fehler "binäre Datei kann nicht ausgeführt werden" gestoßen.

  • objdump zeigt, dass die Binärdatei 64-Bit elf64-x86-64 ist
  • uname zeigt, dass mein Computer 32-Bit i686 ist

    $ ./FF.Communicatorbash:./FF.Communicator:Binärdatei kann nicht ausgeführt werden$ uname -mpioi686 i686 i386 GNU/Linux$ objdump -a ./FF.Communicator./FF.Communicator:Dateiformat elf64-x86-64./ FF.Communicator

  • objdump auf einer funktionierenden Binärdatei auf meinem Rechner zeigt, dass es 32-Bit elf32-i386 ist

    $ objdump -a /bin/ls/bin/ls:Dateiformat elf32-i386

Mit diesen Tools können Sie die Architekturen von Maschinen und Binärdateien überprüfen - nicht nur Intel-Architekturen, sondern jeden Prozessor.

Benutzer von Mac OSX können die Architekturinformationen einer bestimmten Datei mit dem Befehl „Datei“ herausfinden:

$ file filename_here

Linux
  1. Wie kann ich überprüfen, ob eine Datei vorhanden ist, und einen Befehl ausführen, wenn dies nicht der Fall ist?

  2. Wie kann ich einen Zeilenumbruch löschen, wenn es das letzte Zeichen in einer Datei ist?

  3. Wie kann ich unter Linux den Inhalt einer Datei als Parameter an eine ausführbare Datei übergeben?

  4. Wie kann ich PHP-Code von der Kommandozeile aus ausführen?

  5. Wie kann ich dem Anfang jeder Zeile in einer Datei eine Zeichenfolge voranstellen?

So beheben Sie den temporären Fehler bei der Namensauflösung

Problembehebung:Fehler „Benutzer befindet sich nicht in der Sudoers-Datei“.

Wie führe ich eine .sh-Datei aus, wenn die Sitzung beginnt?

Wie kann ich die Berechtigungen meiner Dateien korrigieren?

Wie kann ich zwei Abschnitte derselben Datei unterscheiden?

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?