Instalater ispiše “unsupported distribution”, vi uredite jedan niz znakova i on nastavi dok minutu kasnije ne padne s greškom učitavača. Taj slijed je simptom koji vrijedi prepoznati: prvi neuspjeh je bio provjera prepoznavanja, a drugi je granica kompatibilnosti. To su dva različita problema koji se slučajno pojavljuju u istom terminalu. Uređivanje provjere može vas samo premjestiti s prvog na drugi.

Simptom: instalater se zaustavlja na vašoj izvedenoj distribuciji

Skripta koja čita naziv distribucije i odbija nastaviti govori vam da njen autor nije testirao vašu izvedenu distribuciju. To je izjava o podršci, a ne tehnička činjenica, i često je pogrešna u smislu da bi paket sasvim dobro radio.

Nevolja počinje kada zaobilazno rješenje postane plan. Promjena identitetske datoteke učini da provjera prođe, a paket se zatim učita ili ne učita prema okruženju za izvršavanje koje je stvarno instalirano. Ako tamo padne, nikakvo dalje uređivanje identiteta neće pomoći.

Koristan potez je zato otkriti koje je pitanje instalater postavio, a zatim otkriti bi li odgovor bio važan. To su dvije odvojene istrage i samo druga predviđa hoće li paket raditi.

Tri verzije koje ljudi nazivaju verzijom sistema

Izdanje distribucije imenuje zapakovano okruženje. Verzija C biblioteke imenuje implementaciju okruženja za izvršavanje i njeno izdanje. Verzija kompajlera imenuje lanac alata. Ljudi u razgovoru sve tri nazivaju “verzijom sistema”, ali u instalateru nisu zamjenjive.

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

Unaprijed izgrađena aplikacija očekuje okruženje za izvršavanje koje je postojalo kada je povezana. Zamjena kompajlera na hostu ne povezuje je ponovo, a noviji lanac alata ne mijenja ništa u simbolima učitavača koje binarni fajl traži. Arhitektura je opet posebno važna, jer 32-bitni paket na 64-bitnom sistemu pada zbog razloga koje nijedan niz verzije ne objašnjava.

Sačuvajte četiri izlaza uz izvještaj. Prikupljanje traje deset sekundi i odgovara na većinu pitanja koja bi vam održavalac inače postavio e-poštom.

Čitajte grešku, ne provjeru

Prva greška pri pokretanju je dokaz. Poruka o nedostajućem dijeljenom objektu ili o verziji simbola koju učitavač ne može zadovoljiti jest problem zavisnosti od okruženja za izvršavanje. Poruka koja ponavlja naziv distribucije opet je provjera prepoznavanja, na drugom mjestu.

dokumentacija dinamičkog linkera opisuje kako radi pretraga biblioteka i gdje učitavač traži. Promjena oznake distribucije ne dodaje direktorij na tu putanju pretrage i zato drugi neuspjeh izgleda nepovezano s prvim.

Ne posežite za ldd na preuzetom izvršnom fajlu kao običan prvi korak. Njegov vlastiti priručnik upozorava da u nekim okolnostima može izvršiti program, a pokretanje nepouzdanog instalatera upravo je slučaj na koji se to upozorenje odnosi.

Zašto uređivanje niza ne pomaže

Falsifikovanje identiteta operativnog sistema mijenja kako svaki program na mašini vidi sebe. Menadžeri paketa, alatke za podršku i druge aplikacije čitaju istu datoteku, a vrijednost koja zadovoljava jedan instalater može mjesecima kasnije zbuniti nešto drugo.

Zamjena biblioteka hosta datotekama iz druge distribucije je gore. Može pokvariti nepovezani softver, nevidljiva je menadžeru paketa i traži plan održavanja koji niko ne zapisuje. Takve promjene ne opravdava jedan restriktivan instalater.

Ako je provjera zaista nedostatak u prepoznavanju, održavalac to može potvrditi i opisati podržanu ispravku. Ako nije nedostatak, podržani put je gradnja za vašu platformu i taj se odgovor ne mijenja zato što je niz uređen.

Napišite izvještaj na osnovu kojeg održavalac može djelovati

Zabilježite distribuciju i izdanje, arhitekturu, izdanje VPN-a, tačan uvjet koji je odbijen i prvu grešku okruženja za izvršavanje ako ste dotle stigli. Navedite jeste li što izmijenili, jer je izvještaj sa izmijenjenog sistema drugi izvještaj.

Ostavite originalni instalater nepromijenjen i opišite provjeru umjesto da je zaobilazite. Ta razlika omogućava održavaocu da odvoji preusko pravilo prepoznavanja od stvarne granice binarne kompatibilnosti, a to su dva vrlo različita kvara s dvije vrlo različite popravke.

Ako odgovor bude da vaša platforma nije podržana, to je iskoristiv rezultat. Kaže vam da tražite podržanu gradnju umjesto da provedete još jednu večer na identitetskim datotekama koje nikada nisu bile problem.

Povezani članci