GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mengatasi kesalahan tidak dapat mengeksekusi file biner?

Biasanya pesan kesalahan itu berarti Linux tidak mengenali file tersebut sebagai skrip shell atau sebagai file yang dapat dieksekusi.

Biasanya penyebabnya adalah menjalankan executable pada arsitektur yang salah - jika Anda mencoba menjalankan x86 executable pada ARM CPU, pesan ini akan muncul.

Apakah /usr/bin/id ditimpa, mungkin?


Coba jalankan menggunakan ./executablefilename alih-alih menggunakan sh executablefilename. Ini bukan skrip shell.


Masalahnya adalah menjalankan biner untuk arsitektur prosesor yang berbeda. Anda dapat menggunakan objdump (dari binutils) untuk memeriksa arsitektur binari. Anda dapat menggunakan uname untuk memeriksa arsitektur mesin.

misalnya Saya mengalami kesalahan ini "tidak dapat menjalankan file biner" saat menginstal FF.Communicator - plugin firefox untuk chrome (agar saya dapat menjalankan halaman yang menggunakan applet java).

  • objdump menunjukkan binernya adalah 64-bit elf64-x86-64
  • hapus nama menunjukkan mesin saya 32-bit i686

    $ ./FF.Communicatorbash:./FF.Communicator:tidak dapat menjalankan file biner$ uname -mpioi686 i686 i386 GNU/Linux$ objdump -a ./FF.Communicator./FF.Communicator:format file elf64-x86-64./ FF.Komunikator

  • objdump pada biner yang berfungsi di mesin saya menunjukkan bahwa ini adalah elf32-i386 32-bit

    $ objdump -a /bin/ls/bin/ls:format file elf32-i386

Dengan menggunakan alat ini, Anda dapat memeriksa arsitektur mesin dan binari - bukan hanya arsitektur intel tetapi prosesor apa pun.

Untuk pengguna Mac OSX, Anda dapat mengetahui info arsitektur file tertentu menggunakan perintah "file":

$ file filename_here

Linux
  1. Bagaimana saya bisa mengeksekusi kode PHP dari baris perintah?

  2. Bagaimana saya bisa menambahkan string ke awal setiap baris dalam sebuah file?

  3. Bagaimana cara memastikan sistem saya menggunakan file ~/.screenrc?

  1. /usr/bin/ls:/usr/bin/ls:Tidak Dapat Mengeksekusi File Biner?

  2. Bagaimana saya bisa memeriksa file yang ada dan menjalankan perintah jika tidak?

  3. Bagaimana saya bisa menemukan file terlama di pohon direktori

  1. Bagaimana saya bisa menghapus baris baru jika itu adalah karakter terakhir dalam file?

  2. Bagaimana saya bisa menghubungkan file di Linux?

  3. menggunakan linux bagaimana saya bisa meneruskan konten file sebagai parameter ke yang dapat dieksekusi?