Bi fitxategiak 32 bitekoak dira eta horietako bakarra exekutatzen da zure plakan. Intelentzako ELF32 konpilazio bat eta ARMrentzako ELF32 konpilazio bat klase-eremuan bat datoz eta garrantzitsua den guztian ez datoz bat. 32 biteko aukera eskaintzen duen deskarga-orri batek ia ezer ez dizu esan benetan deskargatu duzun fitxategiaren goiburua irakurri arte. Izena aldatzeak ez du instrukzio bakar bat ere aldatzen.

Klaseak eta makinak galdera desberdinak erantzuten dituzte

Klase-eremuak dio fitxategiak 32 biteko edo 64 biteko egiturak erabiltzen dituen. Makina-eremuak fitxategia konpilatu zen instrukzio-multzoaren izena ematen du. Lehenengoa bakarrik irakurtzea da x86 konpilazio bat ARM plaka batean amaitzeko modua, guztiz sinesgarria dirudien fitxategi-izenarekin. Bi balioak komando beretik datoz, horregatik da hain erraza bat saltatzea.

Konfusio bera aplikatzen zaie 64 biteko etiketei, non aarch64 eta x86-64 hitz-tamaina bat partekatzen duten eta instrukzio bat ere ez. 64 biteko deskarga bat zerrendatzen duen hornitzaile-orri batek bere konpilazioa deskribatzen du, ez zure makina. Egiaztatu fitxategiaren goiburua, ez orriko zutabearen izenburua.

readelf -h ./vendor-vpn
readelf -l ./vendor-vpn | head -20
file ./vendor-vpn

Lehen komandoak goiburua inprimatzen du, klasea eta makina barne. Bigarrenak programaren goiburuak erakusten ditu, non interprete-eskaera bat bizi den. Hirugarrenak lerro bat ematen dizu taula bat behar duzuna baino gehiago denean.

Exekuzio-baimena gehitzeak edo banaketa-egiaztapen bat adabakitzeak ez du ezer itzultzen. Emulazioa, plataformak onartzen duen tokian, hedapen-erabakia da, bere errendimendu- eta menpekotasun-kostuekin.

Irakurri goiburua instalatzailea exekutatu aurretik

Aztertu konfiantzazko artefaktu bat hortik ezer exekutatu aurretik. Erdi bidean huts egiten duen instalatzaile batek ordezkatutako liburutegiak eta ezer funtzionatzen ez duena utz ditzake, hasi zinen artxiboa baino abiapuntu okerragoa dena. Goiburuaren azterketa irakurtzeko soilik da eta itzulgarria sistema ezer aldatzen ez delako zentzuan.

Konparatu makina-eremua martxan dagoen sistemaren pakete-arkitekturarekin, ez plakaren marketin-izenarekin. 32 biteko erabiltzaile-espazioa exekutatzen duen 64 biteko CPU batek 32 biteko konpilazioa behar du, eta xehetasun horrek erabakitzen du zein deskarga den natiboa. Plakaren gaitasuna ez da muga; instalatutako erabiltzaile-espazioa da.

dpkg --print-architecture
uname -m
getconf LONG_BIT

Lehen komandoak sistemak paketeak zein arkitekturatarako instalatzen dituen jakinarazten du, eta bat etorri behar duen balioa da. Beste biak nukleoa eta hitz-tamaina deskribatzen dituzte, eta erabiltzaile-espazioarekin bat ez etor daitezke arkitektura anitzeko instalazio batean.

Erantzun horiek bat ez datozenean, erabaki hornitzaileak zein onartzen duen beste artxibo bat deskargatu aurretik. Asmatzeak huts egiten duen instalazio-begizta bat sortzen du, bakoitza puntu desberdin batean huts egiten duena, eta porrot bakoitzak arazo berri bat dirudi.

Egiaztatu interpretea, ez soilik arkitektura

Exekutagarri dinamiko batek espero duen kargatzailea programaren goiburu batean erregistratzen du. Kargatzaile-bide desberdina duen sistema batean nukleoak fitxategia abiarazteari uko egiten dio, makina-eremua zehazki bat datorren arren. Hori da jendea falta diren liburutegien bila bidaltzen duen porrota.

Errore-mezuak esaten dizu zein kasutan zauden, eta bi kasuak erraz nahasten dira. Formatua edo arkitektura ukatzea falta den fitxategi edo interprete batetik bereizten da, eta horietako bakarra konpontzen da beste pakete bat instalatuta.

readelf -l ./vendor-vpn | grep -A1 INTERP
ls -l /lib64/ld-linux-x86-64.so.2

Lehen komandoak binarioak eskatzen duen interprete-bidea erakusten du. Bigarrenak bide hori existitzen den egiaztatzen du, eta horrek konpilazio oker bat falta den kargatzaile batetik bereizten du.

Ez exekutatu menpekotasun-zerrendarik konfiantzazkoa ez den binario baten aurka, inplementazio batzuek aztertzen duten fitxategia exekuta dezaketelako. Mantendu azterketa irakurtzeko soilik eta eutsi kargatzailearen esteka sinbolikoak gehitzearen tentazioari, onartzen ez den konpilazio bat abiarazteko.

Eskatu konpilazio bat datuak eskuan dituzula

Bidali hornitzaileari OS bertsioa, pakete-arkitektura, klase eta makina balioak eta lehen errore-mezua. Konbinazio horrek erantzun erabilgarria irabazten du, huts egite orokorraren pantaila-argazki batek laguntza-txantiloi bat irabazten duen bitartean.

Mantendu binarioaren galdera konfigurazioaren galderatik bereizita. Konpilazio zuzena abiarazten denean, profilek, kredentzialek eta ibilbideek beren arazoak izaten jarraitzen dute, eta profileko edizio-kopuruak ez du arkitektura okerreko binario bat funtzionaraziko.

Erlazionatutako artikuluak