Mindkét fájl 32 bites, és csak az egyik fut a kártyáján. Az Intelhez készült ELF32-összeállítás és az ARM-hez készült ELF32-összeállítás egyetért az osztály mezőben, és minden fontos dologban különbözik. Egy 32 bites lehetőséget kínáló letöltési oldal szinte semmit sem mondott önnek, amíg el nem olvassa annak a fájlnak a fejlécét, amelyet valóban letöltött. Az átnevezés egyetlen utasítást sem változtat meg.

Az osztály és a gép különböző kérdésekre válaszol

Az osztály mező megmondja, hogy a fájl 32 bites vagy 64 bites struktúrákat használ. A gép mező megnevezi az utasításkészletet, amelyre a fájlt lefordították. Csak az elsőt olvasni az az út, ahogyan egy x86-összeállítás egy ARM-kártyára kerül egy teljesen hihetőnek látszó fájlnévvel. Mindkét érték ugyanabból a parancsból származik, ezért olyan könnyű kihagyni az egyiket.

Ugyanez a zavar vonatkozik a 64 bites címkékre, ahol az aarch64 és az x86-64 egy szóméretet oszt meg, és semmilyen utasítást. Egy 64 bites letöltést felsoroló szállítói oldal a saját összeállítását írja le, nem az ön gépét. Ellenőrizze a fájl fejlécét, ne az oldal oszlopfejlécét.

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

Az első parancs kiírja a fejlécet, beleértve az osztályt és a gépet. A második a programfejléceket mutatja, ahol az értelmező kérése található. A harmadik egy sort ad, amikor egy táblázat több, mint amire szüksége van.

A végrehajtási engedély hozzáadása vagy egy disztribúció-ellenőrzés javítása semmit sem fordít le. Az emuláció, ahol a platform támogatja, telepítési döntés, saját teljesítmény- és függőségi költséggel.

Olvassa el a fejlécet, mielőtt futtatja a telepítőt

Vizsgáljon meg egy megbízható összetevőt, mielőtt bármit végrehajtana belőle. Egy félúton meghiúsuló telepítő lecserélt könyvtárakat és semmi működőt hagyhat maga után, ami rosszabb kiindulópont, mint az az archívum, amellyel elkezdte. A fejlécvizsgálat csak olvasható, és abban az értelemben visszafordítható, hogy semmi sem változik a rendszeren.

Hasonlítsa össze a gép mezőt a futó rendszer csomagarchitektúrájával, ne a kártya marketingnevével. A 32 bites felhasználói teret futtató 64 bites processzornak a 32 bites összeállításra van szüksége, és ez a részlet dönti el, melyik letöltés natív. A kártya képessége nem a korlát; a telepített felhasználói tér az.

dpkg --print-architecture
uname -m
getconf LONG_BIT

Az első parancs azt az architektúrát jelenti, amelyre a rendszer csomagokat telepít, és ennek az értéknek kell egyeznie. A másik kettő a kernelt és a szóméretet írja le, és többarchitektúrás telepítésnél eltérhetnek a felhasználói tértől.

Amikor ezek a válaszok eltérnek, döntse el, melyiket támogatja a szállító, mielőtt újabb archívumot tölt le. A találgatás telepítések ciklusát hozza létre, amelyek mindegyike más ponton hiúsul meg, és minden hiba új problémának tűnik.

Ellenőrizze az értelmezőt, ne csak az architektúrát

A dinamikus futtatható fájl egy programfejlécben rögzíti az általa elvárt betöltőt. Egy eltérő betöltői útvonalú rendszeren a kernel megtagadja a fájl indítását, még akkor is, ha a gép mező pontosan egyezik. Ez az a hiba, amely embereket hiányzó könyvtárak keresésére küld.

A hibaüzenet megmondja, melyik esetben van, és a két esetet könnyű összetéveszteni. A formátum vagy architektúra elutasítása különbözik a hiányzó fájltól vagy értelmezőtől, és csak az egyiket orvosolja egy másik csomag telepítése.

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

Az első parancs megmutatja az értelmező útvonalát, amelyet a bináris kér. A második ellenőrzi, hogy létezik-e ez az útvonal, ami elválasztja a rossz összeállítást a hiányzó betöltőtől.

Ne futtasson függőséglistázót nem megbízható binárison, mert egyes implementációk végrehajthatják a vizsgált fájlt. Tartsa a vizsgálatot csak olvashatónak, és álljon ellen a betöltőhöz hozzáadott szimbolikus hivatkozásoknak, hogy egy nem támogatott összeállítás elinduljon.

Kérjen összeállítást a tények birtokában

Küldje el a szállítónak az operációs rendszer kiadását, a csomagarchitektúrát, az osztály és a gép értékeit, valamint az első hibaüzenetet. Ez a kombináció hasznos választ ér, míg egy általános hiba képernyőképe támogatási sablont ér.

Tartsa a bináris kérdését külön a konfiguráció kérdésétől. Miután a helyes összeállítás elindul, a profilok, a hitelesítő adatok és az útvonalak továbbra is a saját problémáik, és a profilszerkesztés semmilyen mennyisége nem indít el egy rossz architektúrájú binárist.

Kapcsolódó cikkek