Cara Memperbaiki 'tidak dapat mengeksekusi file biner: Exec format error' pada Ubuntu

Meskipun seharusnya tidak terjadi ketika menggunakan repositori apt-get resmi, jika Anda mengunduh perangkat lunak dari Internet dan menjalankannya kemudian ada kemungkinan bahwa Anda akan melihat bash yang ditakuti : ./nameOfProgram: tidak dapat mengeksekusi file biner: kesalahan format Exec . Kesalahan ini, yang biasanya diikuti oleh bash: ./nameOfProgram.sh: Izin ditolak atau sesuatu seperti itu, menunjukkan bahwa Ubuntu tidak dapat berinteraksi dengan benar dengan biner yang Anda unduh. Ini karena sementara itu tampaknya Linux biner yang valid, itu dirancang untuk chipset yang berbeda dari kernel Anda saat ini mendukung.

Kebanyakan orang yang menggunakan Ubuntu menggunakan prosesor 32-bit atau 64-bit berbasis di sekitar arsitektur standar yang dirilis Intel, terlepas dari siapa yang sebenarnya membuat microchip mereka. Penting untuk diingat bahwa prosesor 64-bit dapat berjalan dalam mode 32-bit, jadi jika Anda mendapatkan kesalahan ini meskipun Anda memiliki prosesor 64-bit ada kemungkinan Anda menjalankan versi 32-bit dari Ubuntu. Ada beberapa perintah sederhana yang diperlukan untuk mengetahui apa chip Anda beroperasi.

Metode 1: Menggunakan Command lengkungan

Jika Anda tidak akrab dengan jenis mikroprosesor yang telah Anda instal di mesin Anda, maka Anda terlebih dahulu ingin menggunakan perintah lengkungan dari baris perintah. Anda hanya akan melihat satu baris output yang dikembalikan kepada Anda setelah menjalankan perintah ini. Dalam banyak kasus, Anda akan melihat i686, yang berarti Anda menggunakan prosesor 32-bit dan oleh karena itu tidak dapat menjalankan binari x86_64. Jika Anda malah melihat amd64 atau yang serupa, maka Anda menggunakan prosesor x86_64, dan setidaknya secara teoritis dapat menjalankan sebagian besar biner 32-bit dan 64-bit. Tidak seperti Microsoft Windows, Ubuntu Linux sebenarnya berisi alat yang tepat untuk mengizinkan pengguna chipset 644-bit untuk menjalankan program Windows 16-bit dalam sistem operasi mereka dalam banyak kasus juga.

Istilah-istilah ini masih benar bahkan jika Anda tidak benar-benar menggunakan model microchip tertentu. Misalnya, i686 adalah bagaimana Linux mengacu pada banyak prosesor 32-bit bahkan jika mereka sebenarnya bukan chip Intel 80686. Bahkan jika Anda menggunakan teknologi Intel 64-bit, lengkungan mungkin masih menyebut prosesor Anda sebagai chip amd64. Ini tidak menunjukkan kesalahan, dan dapat diabaikan dengan aman. Anda dapat menggunakan cat / proc / cpuinfo atau lebih / proc / cpuinfo untuk mengetahui jenis prosesor yang Anda gunakan. Karena garis-garis dalam file ini panjang, Anda mungkin ingin mendorong F11 sebelum mengeluarkannya jika Anda menggunakan jendela terminal grafis. Pengguna konsol virtual, terutama yang bekerja dengan server Ubuntu, tidak perlu terlalu khawatir.

Anda mungkin melihat beberapa jenis output lainnya, yang mungkin lebih membatasi pilihan Anda ketika datang ke perangkat lunak yang sedang berjalan. Ubuntu mendukung arsitektur PowerPC untuk waktu yang lama, yang ditemukan di beberapa workstation serta banyak mesin Macintosh Classic dan OS X Macintosh yang lebih lama. Anda sebenarnya masih dapat menemukan repositori Ubuntu untuk arsitektur ini, meskipun mereka menerima sedikit dukungan hari ini. Namun, Anda kemungkinan besar tidak akan dapat menjalankan banyak binari Linux yang Anda unduh dari Internet di luar repositori resmi dalam kasus ini. Itu tidak berarti bahwa Ubuntu tidak berfungsi pada mesin ini, meskipun Anda mungkin ingin melihat distribusi Lubuntu yang lebih ringan.

TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini

Metode 2: Menggunakan Command file

Perintah file mengidentifikasi apa yang berisi file yang berbeda, dan itu biasanya sangat akurat. Coba identifikasi file yang dimaksud dengan mengetikkan nama fileOfProgram untuk melihat apakah Anda mendapatkan ELF 32-bit atau ELF 64-bit sebagai output. Jika itu memberitahu Anda bahwa itu adalah ELF 64-bit biner dan Anda menerima i686 sebagai output dari perintah lengkungan, maka tidak ada cara Anda dapat menjalankannya di komputer Anda. Jika Anda menggunakan mikroprosesor 64-bit yang menjalankan Ubuntu 32-bit, maka Anda dapat menginstal ulang sistem operasi secara teknis, meskipun ini merupakan langkah ekstrim untuk menjalankan satu program.

Ada juga kemungkinan yang sangat nyata, betapapun kecilnya, bahwa Anda mungkin menemukan sebuah biner yang ketika Anda mencoba menjalankannya memuntahkan karakter sampah ke terminal bahkan jika Anda menjalankan pemindaian malware di dalamnya. Karakter-karakter ini biasanya berbentuk blok berbentuk lozenge, atau kubus persegi panjang yang memiliki nilai numerik di dalamnya. Beberapa ilmuwan komputer memanggil tahu terakhir, dan mewakili nilai-nilai Unicode dari karakter yang tidak dapat ditampilkan oleh tipfaces yang Anda pasang saat ini. Jika terminal menampilkannya seperti ini, maka Anda dapat yakin bahwa ini bukan kesalahan font atau apa pun yang berkaitan dengan malware. Sebaliknya, ini hanya karena opcode mikroprosesor yang dikompilasi di dalam biner begitu asing bagi sistem Anda sehingga tidak tahu bagaimana menafsirkan beberapa kode.

Cara terbaik untuk memperbaikinya adalah menginstal paket yang tepat untuk arsitektur Anda. Jika Anda menginstal paket dari dalam Ubuntu, maka sistem apt-get atau manajer Synaptic grafis telah Anda bahas tanpa masalah. Jika Anda mengunduh paket dari distribusi lain, maka Anda harus mencari yang tepat untuk arsitektur Anda. Ambil, misalnya, daftar Linux paket gvim Arch Linux. Sementara paket default menampilkan arsitektur x86_64, ada juga satu untuk chipset i686. Yang ini akan bekerja pada mesin 32-bit yang bekerja dengan struktur interupsi Intel, tetapi ingat bahwa istilah i686 dan 32-bit tidak saling inklusif sepanjang waktu karena chipset lain yang didukung Linux benar-benar melakukan fitur implementasi 32-bit mereka sendiri.

Pengguna yang menjelajahi seluruh adegan GNU / Linux mungkin menemukan binari yang dikompilasi untuk teknologi yang jauh lebih eksotis daripada ini. Linux benar-benar merupakan adegan kode lintas platform, sehingga Anda akan melihat OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha dan banyak binari standar lainnya dikompilasi untuk bekerja dengan. Kemungkinan besar, Anda tidak akan bisa menjalankan semua ini, meskipun ARM adalah platform tablet dan smartphone yang sangat populer. Ini juga merupakan platform yang Raspberry Pi berbasis di sekitar, yang berarti jika Anda benar-benar menjalankan Ubuntu pada perangkat seluler atau distribusi Ubuntu MATE untuk Raspberry Pi Anda akan benar-benar membutuhkan ini bukan binari Intel 32-bit atau x86_64.

TIP PRO: Jika masalahnya ada pada komputer Anda atau laptop / notebook, Anda harus mencoba menggunakan Perangkat Lunak Reimage Plus yang dapat memindai repositori dan mengganti file yang rusak dan hilang. Ini berfungsi dalam banyak kasus, di mana masalah ini berasal karena sistem yang rusak. Anda dapat mengunduh Reimage Plus dengan Mengklik di Sini

Facebook Twitter Google Plus Pinterest