Instalátor vypíše “unsupported distribution”, vy upravíte jeden řetězec a on pokračuje, dokud o minutu později neselže s chybou zavaděče. Tahle posloupnost je příznak, který stojí za to rozpoznat: první selhání byla kontrola rozpoznání a druhé je hranice kompatibility. Jsou to dva různé problémy, které se náhodou objevují ve stejném terminálu. Úprava kontroly vás může jen přesunout z prvního na druhé.

Příznak: instalátor se zastaví na vaší odvozené distribuci

Skript, který přečte název distribuce a odmítne pokračovat, vám říká, že jeho autor vaši odvozenou distribuci netestoval. Je to prohlášení o podpoře, ne technický fakt, a často je nesprávné v tom smyslu, že balíček by fungoval bez potíží.

Problém začíná, když se z obchvatného řešení stane plán. Změna souboru identity nechá kontrolu projít a balíček se pak načte, nebo nenačte, proti běhovému prostředí, které je skutečně nainstalované. Pokud tam selže, žádné další úpravy identity nepomohou.

Užitečný krok tedy je zjistit, na kterou otázku se instalátor ptal, a potom zjistit, zda by na odpovědi záleželo. To jsou dvě samostatná šetření a jen to druhé předpovídá, zda balíček bude fungovat.

Tři verze, kterým lidé říkají verze systému

Vydání distribuce pojmenovává zabalené prostředí. Verze knihovny C pojmenovává implementaci běhového prostředí a její vydání. Verze kompilátoru pojmenovává sadu nástrojů. Lidé v hovoru nazývají všechny tři “verze systému”, ale v instalátoru nejsou zaměnitelné.

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

Předpřipravená aplikace očekává běhové prostředí, které existovalo v době jejího slinkování. Výměna kompilátorů na hostiteli ji znovu neslinkuje a novější sada nástrojů nic nemění na symbolech zavaděče, které binárka požaduje. Architektura je znovu důležitá samostatně, protože 32bitový balíček na 64bitovém systému selže z důvodů, které žádný řetězec verze nevysvětlí.

Uchovejte čtyři výstupy u hlášení. Jejich sběr trvá deset sekund a odpovídají na většinu otázek, které by vám správce jinak položil e-mailem.

Čtěte chybu, ne kontrolu

První chyba při spuštění je důkaz. Hlášení o chybějícím sdíleném objektu nebo o verzi symbolu, kterou zavaděč nedokáže uspokojit, je problém závislosti na běhovém prostředí. Hlášení, které opakuje název distribuce, je znovu kontrola rozpoznání, na jiném místě.

dokumentace dynamického linkeru popisuje, jak funguje hledání knihoven a kde zavaděč hledá. Změna označení distribuce nepřidá do této cesty hledání žádný adresář, a proto druhé selhání vypadá nesouvisející s prvním.

Nesahejte po ldd na staženém spustitelném souboru jako po běžném prvním kroku. Její vlastní manuál varuje, že za některých okolností může program spustit, a spouštění nedůvěryhodného instalátoru je přesně ten případ, o kterém to varování je.

Proč úprava řetězce nepomáhá

Falšování identity operačního systému mění to, jak každý program na stroji vidí sám sebe. Správci balíčků, nástroje podpory i další aplikace čtou stejný soubor a hodnota, která uspokojí jeden instalátor, může o měsíce později zmást něco jiného.

Nahrazení knihoven hostitele soubory z jiné distribuce je horší. Může rozbít nesouvisející software, je neviditelné pro správce balíčků a vyžaduje plán údržby, který nikdo nesepíše. Takové změny jeden omezující instalátor neospravedlňuje.

Pokud je kontrola skutečně chybou rozpoznání, správce to může potvrdit a popsat podporovanou opravu. Pokud chybou není, podporovanou cestou je sestavení pro vaši platformu a tato odpověď se nemění proto, že byl řetězec upraven.

Napište hlášení, se kterým může správce pracovat

Zaznamenejte distribuci a vydání, architekturu, vydání VPN, přesnou podmínku, která byla odmítnuta, a první chybu běhového prostředí, pokud jste se tak daleko dostali. Uveďte, zda jste něco změnili, protože hlášení z upraveného systému je jiné hlášení.

Nechte původní instalátor beze změny a popište kontrolu, místo abyste ji obcházeli. Tento rozdíl umožní správci oddělit příliš úzké pravidlo rozpoznání od skutečné hranice binární kompatibility, což jsou dva velmi odlišné bugy se dvěma velmi odlišnými opravami.

Pokud přijde odpověď, že vaše platforma není podporovaná, je to použitelný výsledek. Říká vám, abyste hledali podporované sestavení, místo abyste strávili další večer nad soubory identity, které nikdy nebyly problémem.

Související články