Nasıl Onarılır ikili dosya çalıştırılamıyor: Ubuntu'da Exec format hatası

Resmi apt-get depolarını kullanırken olmasa da, internetten yazılımı indirip çalıştırırsanız, o zaman korkunç bir bash göreceksiniz : ./nameOfProgram: İkili dosyayı çalıştıramıyor: Exec format hatası . Genellikle bash tarafından takip edilen bu hata : ./nameOfProgram.sh: İzin reddedildi ya da onun gibi bir şey, Ubuntu'nun indirdiğiniz ikili dosyayla doğru şekilde arayüzeylemediğini gösterir. Bunun nedeni, görünüşte geçerli bir Linux ikili olduğu halde, çekirdeğinizin şu anda desteklediğinden farklı bir yonga seti için tasarlanmasıdır.

Ubuntu kullanan çoğu kişi, aslında kimin mikroçiplerini yaptıklarına bakılmaksızın Intel'in yayınladığı standart bir mimariye dayanan 32 bit veya 64 bit işlemcilerde. 64-bit işlemcilerin 32-bit modda çalışabildiğini hatırlamak önemlidir, bu yüzden eğer 64-bit bir işlemciniz olsa bile bu hatayı alıyorsanız, Ubuntu'nun 32-bit bir sürümünü çalıştırmanızın bir şansı vardır. Çipinizin ne şekilde çalıştığını söylemek için birkaç basit komut vardır.

Yöntem 1: Arch komutunu kullanma

Makinenize yüklediğiniz mikroişlemcinin türüne aşina değilseniz, önce komut satırından kemer komutunu kullanmak isteyeceksiniz. Bu komutu çalıştırdıktan sonra size yalnızca bir çıkış satırı döndüğünü göreceksiniz. Çoğu durumda, i686'yı görürsünüz, bu da 32 bitlik bir işlemciniz olduğunu ve bu nedenle x86_64 ikili dosyalarını çalıştıramayacağınızı gösterir. Bunun yerine, amd64 veya benzer bir şey görürseniz, x86_64 işlemcindesiniz ve en azından teorik olarak en çok 32 bit ve 64 bit ikili dosyaları çalıştırabiliyorsunuz. Microsoft Windows'un aksine, Ubuntu Linux aslında 644-bit yonga setlerinin kullanıcılarına işletim sistemlerinde 16-bit Windows programlarını çalıştırmasına izin veren uygun araçları içerir.

Aslında bu mikroçip modelini kullanmıyor olsanız bile, bu terimler hala geçerlidir. Örneğin, i686, aslında Intel 80686 yongası olmasa bile Linux'un birçok 32 bit işlemciye nasıl başvurduğudur. 64 bit Intel teknolojisini kullanıyor olsanız bile, işlemciniz hala işlemcinizi amd64 çipini arayabilir. Bu bir hatayı göstermez ve güvenli bir şekilde göz ardı edilebilir. Kullandığınız işlemcinin türünü öğrenmek için cat / proc / cpuinfo veya daha fazla / proc / cpuinfo kullanabilirsiniz. Bu dosyadaki satırlar uzun olduğundan, grafik terminal penceresi kullanıyorsanız, F11'i yayınlamadan önce itmek isteyebilirsiniz. Sanal bir konsolun kullanıcıları, özellikle Ubuntu sunucusuyla çalışanlar, endişelenmek zorunda kalmayacaklar.

Yazılımın çalıştırılması söz konusu olduğunda seçeneklerinizi daha da kısıtlayabilecek diğer bazı çıktı türlerini görebilirsiniz. Ubuntu, bazı iş istasyonlarında ve birçok Klasik Macintosh ve daha eski OS X Macintosh makinelerinde bulunan en uzun süre için PowerPC mimarisini destekledi. Bugün hala az destek alsa da, aslında bu mimariler için Ubuntu depolarını hala bulabilirsiniz. Ancak, büyük olasılıkla, bu durumda resmi depoların dışında Internet'ten indirdiğiniz birçok Linux ikili dosyasını çalıştıramayacaksınız. Bu, Ubuntu'nun bu makinelerde çalışmadığı anlamına gelmez, ancak daha hafif Lubuntu dağıtımına bakmak isteyebilirsiniz.

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Yöntem 2: dosya komutunu kullanma

Dosya komutu farklı dosyaların içerdiğini tanımlar ve genellikle çok doğrudur. ELF 32 bit veya ELF 64 bit çıktı alıp almadığınızı görmek için dosya adıOfProgram yazarak söz konusu dosyayı tanımlamayı deneyin. Size bir ELF 64-bit ikili olduğunu ve i686'yı arch komutundan çıktı olarak aldığınızı söylerse, makinenizde makul bir şekilde çalıştırmanın bir yolu yoktur. Eğer 32-bit Ubuntu çalıştıran bir 64-bit mikroişlemci kullanıyorsanız, o zaman işletim sistemini teknik olarak yeniden kurabilirsiniz, ancak bu, tek bir programı çalıştırmak için aşırı bir adımdır.

Bununla birlikte, gerçek bir olasılık var ki, bunun yerine bir kötü amaçlı yazılım taraması çalıştırsanız bile, onu çalıştırmayı denediğinizde, terminalde gereksiz karakterleri yaydığı bir ikiliye rastlayabilirsiniz. Bu karakterler genellikle pastil şekilli bloklar ya da bunların içinde sayısal değerlere sahip dikdörtgen şekilli küpler şeklindedir. Bazı bilgisayar bilimcileri, ikinci tofuyu çağırır ve şu anda yüklü olan yazı tiplerinin görüntülenemeyeceği karakterlerin Unicode değerlerini temsil eder. Terminal bunları böyle gösteriyorsa, bunun ne yazı tipi hatası ne de kötü amaçlı yazılımla ilgili bir şey olmadığından emin olabilirsiniz. Aksine, bunun nedeni, ikili sistemin içindeki derlenmiş mikroişlemci opkodunun sisteminize çok yabancı olması ve kodun nasıl yorumlanacağını bilmemesidir.

Bunu düzeltmenin en iyi yolu, mimariniz için uygun paketi yüklemektir. Ubuntu'nun içinden paketler yüklüyorsanız, apt-get sistemi veya grafiksel Synaptic yöneticisi herhangi bir sorun yaşamanızdan sorumludur. Başka bir dağıtımdan paket indiriyorsanız, mimariniz için doğru olanı bulmanız gerekir. Örneğin, Arch Linux'un gvim paketini listelemesi. Varsayılan paket x86_64 mimarisine sahip olsa da, i686 yongaseti için de bir tane var. Bu, Intel interrupt yapısıyla çalışan 32 bit makinelerde çalışacak, ancak Linux'un desteklediği diğer yonga kümelerinin aslında kendi 32-bit uygulamalarını desteklediğinden beri i686 ve 32-bit terimlerinin her zaman karşılıklı olarak dahil olmadığını unutmayın.

Tüm GNU / Linux sahnesini araştıran kullanıcılar, bundan çok daha egzotik teknolojiler için derlenmiş ikili dosyalara rastlayabilir. Linux gerçekten bir çapraz platform kod sahnesidir, bu yüzden OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha ve diğer birçok standart ikili çalışmanın derlendiğini göreceksiniz. ARM, son derece popüler bir tablet ve akıllı telefon platformu olmasına rağmen, bunlardan herhangi birini çalıştıramayacaksınız. Aynı zamanda Raspberry Pi'nin etrafında kurulu olduğu bir platformdur, yani eğer bir mobil cihazda Ubuntu çalıştırıyorsanız veya Raspberry Pi için Ubuntu MATE dağıtımı yapıyorsanız, Intel 32 bit veya x86_64 ikili dosyalarına ihtiyacınız olacaktır.

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Facebook Twitter Google Plus Pinterest