Ambaŭ dosieroj estas 32-bitaj kaj nur unu el ili funkcias sur via tabulo. ELF32-konstruo por Intel kaj ELF32-konstruo por ARM konsentas pri la klasa kampo kaj malkonsentas pri ĉio grava. Elŝuta paĝo, kiu proponas 32-bitan opcion, preskaŭ nenion diris al vi ĝis vi legos la kapon de la dosiero, kiun vi efektive elŝutis. Renomado ne ŝanĝas eĉ unu instrukciojn.

Klaso kaj maŝino respondas malsamajn demandojn

La klasa kampo diras, ĉu la dosiero uzas 32-bitajn aŭ 64-bitajn strukturojn. La maŝina kampo nomas la instrukciaron, por kiu la dosiero estis kompilita. Legi nur la unuan estas kiel x86-konstruo finiĝas sur ARM-tabulo kun dosiernomo, kiu aspektas tute kredinda. Ambaŭ valoroj venas de la sama komando, do preterlasi unu estas same facile.

La sama konfuzo validas por 64-bitaj etikedoj, kie aarch64 kaj x86-64 dividas vortgrandon kaj neniujn instrukciojn. Vendista paĝo, kiu listigas unu 64-bitan elŝuton, priskribas sian propran konstruon, ne vian maŝinon. Kontrolu la kapon de la dosiero anstataŭ la kolumnan titolon sur la paĝo.

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

La unua komando presas la kapon, inkluzive klason kaj maŝinon. La dua montras programajn kapojn, kie loĝas peto pri interpretilo. La tria donas al vi unu linion, kiam tabelo estas pli ol vi bezonas.

Aldoni permeson por plenumo aŭ fliki distribuan kontrolon tradukas nenion. Emulado, kie la platformo subtenas ĝin, estas deploja decido kun propraj kostoj pri rendimento kaj dependecoj.

Legu la kapon antaŭ ol ruli la instalilon

Inspektu fidindan artefakton antaŭ ol plenumi ion el ĝi. Instalilo, kiu malsukcesas duonvoje, povas lasi anstataŭigitajn bibliotekojn kaj nenion funkciantan, kio estas pli malbona komenca punkto ol la arkivo, kun kiu vi komencis. Inspektado de la kapo estas nurlegebla kaj reigebla laŭ tiu senco, ke nenio en la sistemo ŝanĝiĝas.

Komparu la maŝinan kampon kun la paka arkitekturo de la funkcianta sistemo, ne kun la merkata nomo de la tabulo. 64-bita CPU, kiu rulas 32-bitan uzulaĵon, bezonas la 32-bitan konstruon, kaj tiu detalo decidas, kiu elŝuto estas denaska. La kapablo de la tabulo ne estas la limo; la instalita uzulaĵo estas.

dpkg --print-architecture
uname -m
getconf LONG_BIT

La unua komando raportas la arkitekturon, por kiu la sistemo instalas pakaĵojn, kaj tiu estas la valoro, kiu devas kongrui. La aliaj du priskribas la kernon kaj la vortgrandon, kaj ili povas malkongrui kun la uzulaĵo ĉe multarkitektura instalado.

Kiam tiuj respondoj malkongruas, decidu, kiun la vendisto subtenas, antaŭ ol elŝuti alian arkivon. Divenado kreas buklon da instaladoj, kiuj ĉiu malsukcesas ĉe malsama punkto, kaj ĉiu malsukceso aspektas kiel nova problemo.

Kontrolu la interpretilon, ne nur la arkitekturon

Dinamika plenumebla dosiero registras en programa kapo la ŝargilon, kiun ĝi atendas. En sistemo kun malsama ŝargila vojo la kerno rifuzas startigi la dosieron eĉ kiam la maŝina kampo kongruas ekzakte. Tio estas la malsukceso, kiu sendas homojn serĉi mankantajn bibliotekojn.

La erarmesaĝo diras, en kiu kazo vi estas, kaj la du kazojn facile konfuzi. Malakcepto de formato aŭ arkitekturo diferencas de mankanta dosiero aŭ interpretilo, kaj nur unu el ili estas riparata per instalado de alia pakaĵo.

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

La unua komando montras la interpretilan vojon, kiun la binaraĵo petas. La dua kontrolas, ĉu tiu vojo ekzistas, kio apartigas malĝustan konstruon de mankanta ŝargilo.

Ne rulu dependec-listilon kontraŭ nefidinda binaraĵo, ĉar kelkaj realigoj povas plenumi la dosieron, kiun ili inspektas. Tenu la inspektadon nurlegebla kaj rezistu aldoni ŝargilajn simbolajn ligilojn por startigi nesubtenatan konstruon.

Petu konstruon kun la faktoj en la mano

Sendu al la vendisto la OS-eldonon, la pakan arkitekturon, la klasajn kaj maŝinajn valorojn kaj la unuan erarmesaĝon. Tiu kombinaĵo gajnas utilan respondon, dum ekrankopio de ĝenerala malsukceso gajnas subtenan ŝablonon.

Tenu la demandon pri la binaraĵo aparte de la demando pri agordo. Post kiam la ĝusta konstruo startas, profiloj, akreditaĵoj kaj itineroj ankoraŭ estas propraj problemoj, kaj neniu kvanto da profilredaktado igos binaraĵon kun malĝusta arkitekturo funkcii.

Rilataj artikoloj