Kuidas parandada Ubuntu binaarfaili ei saa käivitada: Exec-vormingu viga



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Kuigi ametlike apt-get-hoidlate kasutamisel ei tohiks seda juhtuda, kui laadite tarkvara Internetist alla ja käivitate, on tõenäoline, et näete kardetud bash: ./nameOfProgram: ei saa binaarfaili käivitada: Exec-vormingu tõrge . See viga, millele tavaliselt järgneb bash: ./nameOfProgram.sh: Luba keelatud vms näitab, et Ubuntu ei suutnud teie allalaaditud binaarkaardiga õigesti liituda. Seda seetõttu, et kuigi see on ilmselt kehtiv Linuxi binaarkaart, on see mõeldud teistsuguse kiibistiku jaoks, mida teie kern praegu toetab.



Enamik Ubuntu kasutavaid inimesi on 32- või 64-bitistes protsessorites, mis põhinevad Inteli välja antud standardsel arhitektuuril, olenemata sellest, kes nende mikrokiibid tegelikult tegi. Oluline on meeles pidada, et 64-bitised protsessorid võivad töötada 32-bitises režiimis, nii et kui teil on see viga, isegi kui teil on 64-bitine protsessor, on võimalus, et kasutate Ubuntu 32-bitist versiooni. Piisab mõnest lihtsast käsust, et öelda, millisena teie kiip töötab.



1. meetod: arch-käsu kasutamine

Kui te pole tuttav mikroprotsessori tüübiga, mille olete oma arvutisse installinud, peate kõigepealt kasutama käsurea käsu arch. Pärast selle käsu käivitamist näete teile ainult ühte väljundirida. Paljudel juhtudel näete i686, mis tähendab, et kasutate 32-bitist protsessorit ja seetõttu ei saa käivitada binaarfaile x86_64. Kui näete selle asemel amd64 või midagi muud sarnast, siis kasutate x86_64 protsessorit ja peaksite vähemalt teoreetiliselt suutma käitada enamikku 32- ja 64-bitistest binaarfailidest. Erinevalt Microsoft Windowsist sisaldab Ubuntu Linux tegelikult sobivaid tööriistu, mis võimaldavad 644-bitiste kiibistike kasutajatel paljudel juhtudel ka oma opsüsteemis 16-bitiseid Windowsi programme käitada.



Need tingimused on endiselt tõesed, isegi kui te tegelikult seda konkreetset mikrokiibi mudelit ei kasuta. Näiteks i686 viitab Linux paljudele 32-bitistele protsessoritele, isegi kui need pole tegelikult Inteli 80686 kiibid. Isegi kui kasutate 64-bitist Inteli tehnoloogiat, võib Arch ikkagi nimetada teie protsessorit amd64 kiibiks. See ei tähenda viga ja seda saab ohutult eirata. Võite kasutada kassi / proc / cpuinfo või enama / proc / cpuinfo et teada saada kasutatava protsessori täpne tüüp. Kuna selle faili read on pikad, võiksite graafilise terminaliakna kasutamisel enne selle väljastamist vajutada klahvi F11. Virtuaalse konsooli kasutajad, eriti need, kes töötavad Ubuntu serveriga, ei pea nii palju muretsema.

Võimalik, et näete mõnda muud väljunditüüpi, mis võivad teie valikuid tarkvara käitamise osas veelgi piirata. Ubuntu toetas kõige kauem PowerPC arhitektuuri, mida leidub nii mõnes tööjaamas kui ka paljudes klassikalistes Macintoshi ja vanemates OS X Macintoshi masinates. Nende arhitektuuride jaoks saate tegelikult ikkagi leida Ubuntu hoidlaid, ehkki neid toetatakse täna vähe. Kuid sel juhul ei saa te tõenäoliselt käivitada paljusid Internetist alla laaditud Linuxi binaarkaare väljaspool ametlikke hoidlaid. See ei tähenda, et Ubuntu nendes masinates ei tööta, ehkki võiksite vaadata kergemat Lubuntu jaotust.

2. meetod: faili Command kasutamine

Failikäsk tuvastab, mida erinevad failid sisaldavad, ja see on tavaliselt väga täpne. Proovige kõnealune fail tuvastada, tippides faili nameOfProgram et näha, kas saate väljundina ELF 32-bitise või 64-bitise ELF-i. Kui see ütleb teile, et see on ELF-i 64-bitine binaarkaamera ja saite i686 käsu arch väljundina, ei saa te kuidagi seda mõistlikult oma arvutis käivitada. Kui kasutate 64-bitist mikroprotsessorit, milles töötab 32-bitine Ubuntu, võite opsüsteemi tehniliselt uuesti installida, ehkki see on ühe programmi käitamiseks veidi äärmuslik samm.



Samuti on väga reaalne võimalus, olgu see nii väike, et võite selle asemel kohata binaararvutit, mis selle käivitamisel paiskab terminali rämpsmärke välja isegi siis, kui olete sellega pahavara skanninud. Need tähemärgid on tavaliselt pastillikujuliste plokkide kujul või ristkülikukujuliste kuubikutena, millel on arvväärtused. Mõned arvutiteadlased nimetavad viimast tofuks ja tähistavad nende märkide Unicode'i väärtusi, mida teie praegu installitud kirjatüübid kuvada ei saa. Kui terminal kuvab neid niimoodi, siis võite olla kindel, et see pole ei fondiviga ega midagi pistmist pahavaraga. Pigem on see lihtsalt sellepärast, et kahendkoodis olev kompileeritud mikroprotsessori opkood on teie süsteemile nii võõras, et ei tea, kuidas mõnda koodi tõlgendada.

Parim viis selle parandamiseks on installida oma arhitektuurile sobiv pakett. Kui installite pakette Ubuntu seest, siis apt-get süsteem või graafiline Synaptic manager on teid probleemideta kajastanud. Kui laadite pakette alla teisest jaotusest, peate leidma oma arhitektuurile sobiva. Võtame näiteks Arch Linuxi paketi gvim loendi. Ehkki vaikepaketil on x86_64 arhitektuur, on see olemas ka i686 kiibistikule. See töötab 32-bitistes masinates, mis töötavad Inteli katkestusstruktuuriga, kuid pidage meeles, et terminid i686 ja 32-bitised ei ole kogu aeg vastastikku kaasavad, kuna teistel Linuxi toetatud kiibistikel on oma 32-bitised rakendused.

Kasutajad, kes uurivad kogu GNU / Linuxi stseeni, võivad kokku puutuda binaarkaartidega, mis on koostatud palju eksootilisemate tehnoloogiate jaoks. Linux on tõepoolest platvormidevaheline koodistseen, nii et näete OpenRISC, MIPS, SPARC, M32R, MN103, ARM, ARC, Alpha ja paljusid muid standardseid binaarfaile. Enam kui tõenäoliselt ei saa te ühtegi neist käitada, kuigi ARM on äärmiselt populaarne tahvelarvuti- ja nutitelefoniplatvorm. See on ka platvorm, millel Raspberry Pi põhineb, mis tähendab, et kui kasutate tegelikult Ubuntu mobiilseadmes või Raspberry Pi jaoks mõeldud Ubuntu MATE levitamist, vajate neid tegelikult Inteli 32-bitiste või x86_64-binaarsete failide asemel.

4 minutit loetud