Naziv distribucije, glibc ili kompajler: što instalater provjerava
Instalater koji odbija vašu izvedenu distribuciju možda čita naziv distribucije, verziju okruženja za izvršavanje ili kompajler. Samo jedno od toga odlučuje može li se binarni fajl pokrenuti.
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što 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štoj. Prikupljanje traje deset sekundi i odgovara na većinu pitanja koja bi vam održavatelj 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 nitko ne zapisuje. Takve promjene ne opravdava jedan restriktivan instalater.
Ako je provjera zaista nedostatak u prepoznavanju, održavatelj 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štoj na osnovu kojeg održavatelj 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štoj sa izmijenjenog sistema drugi izvještoj.
Ostavite originalni instalater nepromijenjen i opišite provjeru umjesto da je zaobilazite. Ta razlika omogućava održavatelju 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.