Namestitveni program izpiše “unsupported distribution”, spremenite en niz in nadaljuje, dokler minuto kasneje ne odpove z napako nalagalnika. To zaporedje je simptom, ki ga velja prepoznati: prva napaka je bila preverjanje prepoznave, druga pa meja združljivosti. To sta dve različni težavi, ki se slučajno pojavita v istem terminalu. Spreminjanje preverjanja vas lahko le premakne s prve na drugo.

Simptom: namestitveni program se ustavi na vaši izpeljanki

Skript, ki prebere ime distribucije in noče nadaljevati, vam pove, da njegov avtor vaše izpeljanke ni preizkusil. To je izjava o podpori in ne tehnično dejstvo, in je pogosto napačna v smislu, da bi paket deloval brez težav.

Težava se začne, ko obvoz postane načrt. Sprememba identitetne datoteke spusti preverjanje skozi, paket pa se nato naloži ali ne naloži glede na izvajalno okolje, ki je dejansko nameščeno. Če tam odpove, nobeno nadaljnje urejanje identitete ne bo pomagalo.

Zato je koristen korak ugotoviti, katero vprašanje je namestitveni program zastavil, in nato ugotoviti, ali bi bil odgovor sploh pomemben. To sta dve ločeni preiskavi in samo druga napove, ali bo paket deloval.

Tri različice, ki jih ljudje imenujejo sistemska različica

Izdaja distribucije poimenuje zapakirano okolje. Različica knjižnice C poimenuje izvedbo izvajalnega okolja in njeno izdajo. Različica prevajalnika poimenuje verigo orodij. V pogovoru ljudje vse tri imenujejo “sistemska različica”, v namestitvenem programu pa niso zamenljive.

cat /etc/os-release
ldd --version | head -1
gcc --version | head -1
uname -m

Vnaprej zgrajena aplikacija pričakuje izvajalno okolje, ki je obstajalo ob njenem povezovanju. Zamenjava prevajalnikov na gostitelju je ne poveže znova, novejša veriga orodij pa ne spremeni ničesar v simbolih nalagalnika, ki jih zahteva binarna datoteka. Arhitektura je spet pomembna ločeno, ker 32-bitni paket v 64-bitnem sistemu odpove iz razlogov, ki jih noben niz različice ne pojasni.

Štiri izhode shranite skupaj s poročilom. Zbiranje traja deset sekund in odgovorijo na večino vprašanj, ki bi vam jih vzdrževalec sicer poslal po e-pošti.

Berite napako, ne preverjanja

Prva napaka ob zagonu je dokaz. Sporočilo o manjkajočem skupnem objektu ali o različici simbola, ki je nalagalnik ne more zadovoljiti, je težava odvisnosti od izvajalnega okolja. Sporočilo, ki ponavlja ime distribucije, je spet preverjanje prepoznave, na drugem mestu.

dokumentacija dinamičnega povezovalnika opisuje, kako deluje iskanje knjižnic in kje nalagalnik išče. Sprememba oznake distribucije na to iskalno pot ne doda mape, zato se druga napaka zdi nepovezana s prvo.

Ne segajte po ldd na preneseni izvršljivi datoteki kot po običajnem prvem koraku. Njen lastni priročnik opozarja, da lahko v nekaterih okoliščinah zažene program, zagon nezaupanja vrednega namestitvenega programa pa je ravno tisti primer, na katerega se to opozorilo nanaša.

Zakaj urejanje niza ne pomaga

Ponarejanje identitete operacijskega sistema spremeni, kako vsak program na stroju vidi samega sebe. Upravitelji paketov, orodja za podporo in druge aplikacije berejo isto datoteko, vrednost, ki zadovolji en namestitveni program, pa lahko mesece kasneje zmede nekaj drugega.

Zamenjava gostiteljskih knjižnic z datotekami iz druge distribucije je slabša. Lahko pokvari nepovezano programsko opremo, je nevidna za upravitelja paketov in zahteva načrt vzdrževanja, ki ga nihče ne napiše. Teh sprememb en omejevalni namestitveni program ne opraviči.

Če je preverjanje res napaka prepoznave, jo lahko vzdrževalec potrdi in opiše podprto popravek. Če ni napaka, je podprta pot gradnja za vašo platformo in ta odgovor se ne spremeni zato, ker je bil niz urejen.

Napišite poročilo, na podlagi katerega lahko vzdrževalec ukrepa

Zapišite distribucijo in izdajo, arhitekturo, izdajo VPN, natančen zavrnjeni pogoj in prvo napako izvajalnega okolja, če ste prišli tako daleč. Navedite, ali ste kaj spremenili, ker je poročilo iz spremenjenega sistema drugo poročilo.

Pustite izvirni namestitveni program nespremenjen in opišite preverjanje, namesto da bi se mu izognili. Ta razlika vzdrževalcu omogoča, da loči pretesno pravilo prepoznave od resnične meje binarne združljivosti, to pa sta dve zelo različni napaki z dvema zelo različnima popravkoma.

Če pride odgovor, da vaša platforma ni podprta, je to uporaben rezultat. Pove vam, naj poiščete podprto gradnjo, namesto da bi preživeli še en večer ob identitetnih datotekah, ki nikoli niso bile težava.

Sorodni članki