Nom de la distribució, glibc o compilador: què comprova l’instal·lador
Un instal·lador que rebutja la vostra derivada pot estar llegint un nom de distribució, una versió d’entorn d’execució o un compilador. Només un d’aquests decideix si el binari pot funcionar.
L’instal·lador imprimeix “unsupported distribution”, editeu una cadena i continua fins que falla un minut després amb un error del carregador. Aquesta seqüència és el símptoma que val la pena reconèixer: la primera fallada era una comprovació de reconeixement i la segona és un límit de compatibilitat. Són dos problemes diferents que casualment apareixen al mateix terminal. Editar la comprovació només us pot moure del primer al segon.
El símptoma: l’instal·lador s’atura a la vostra derivada
Un script que llegeix un nom de distribució i es nega a continuar us diu que el seu autor no va provar la vostra derivada. És una declaració de suport i no un fet tècnic, i sovint és incorrecta en el sentit que el paquet funcionaria bé.
El problema comença quan la solució temporal es converteix en el pla. Canviar un fitxer d’identitat fa passar la comprovació, i el paquet llavors es carrega, o no es carrega, contra l’entorn d’execució que realment hi ha instal·lat. Si falla allà, cap edició addicional d’identitat no ajudarà.
Per tant, el moviment útil és esbrinar quina pregunta va fer l’instal·lador i després esbrinar si la resposta hauria importat. Són dues investigacions separades i només la segona prediu si el paquet funcionarà.
Tres versions que la gent anomena la versió del sistema
Una versió de distribució anomena un entorn empaquetat. Una versió de biblioteca C anomena una implementació d’entorn d’execució i la seva versió. Una versió de compilador anomena una cadena d’eines. La gent en conversa anomena totes tres “la versió del sistema”, i no són intercanviables en un instal·lador.
cat /etc/os-release ldd --version | head -1 gcc --version | head -1 uname -m
Una aplicació precompilada espera l’entorn d’execució present quan es va enllaçar. Canviar compiladors a l’amfitrió no la torna a enllaçar, i una cadena d’eines més nova no canvia res dels símbols del carregador que demana el binari. L’arquitectura torna a importar per separat, perquè un paquet de 32 bits en un sistema de 64 bits falla per motius que cap cadena de versió explica.
Guardeu les quatre sortides amb l’informe. Recollir-les porta deu segons i responen la majoria de preguntes que un mantenidor us faria per correu electrònic.
Llegiu l’error, no la comprovació
El primer error d’arrencada és l’evidència. Un missatge sobre un objecte compartit que falta, o sobre una versió de símbol que el carregador no pot satisfer, és un problema de dependència de l’entorn d’execució. Un missatge que repeteix el nom de la distribució és de nou la comprovació de reconeixement, en un altre lloc.
La documentació de l’enllaçador dinàmic descriu com funciona la cerca de biblioteques i on busca el carregador. Canviar una etiqueta de distribució no afegeix cap directori a aquest camí de cerca, i per això la segona fallada sembla no relacionada amb la primera.
No recorreu a ldd sobre un executable baixat com a primer pas casual. El seu propi manual adverteix que pot executar el programa en algunes circumstàncies, i executar un instal·lador no fiable és exactament el cas al qual es refereix aquest avís.
Per què editar la cadena no ajuda
Falsificar la identitat del sistema operatiu canvia com cada programa de la màquina es veu a si mateix. Els gestors de paquets, les eines de suport i altres aplicacions llegeixen el mateix fitxer, i un valor que satisfà un instal·lador pot confondre una altra cosa mesos després.
Substituir biblioteques de l’amfitrió per fitxers d’una altra distribució és pitjor. Pot trencar programari no relacionat, és invisible per al gestor de paquets i necessita un pla de manteniment que ningú no escriu. Aquests canvis no queden justificats per un sol instal·lador restrictiu.
Si la comprovació és realment un defecte de reconeixement, el mantenidor pot confirmar-ho i descriure la correcció suportada. Si no és un defecte, el camí suportat és una compilació per a la vostra plataforma, i aquesta resposta no canvia perquè s’hagi editat la cadena.
Escriviu un informe sobre el qual el mantenidor pugui actuar
Anoteu la distribució i la versió, l’arquitectura, la versió del VPN, la condició exacta que es va rebutjar i el primer error d’entorn d’execució si hi vau arribar. Indiqueu si vau modificar res, perquè un informe d’un sistema modificat és un informe diferent.
Manteniu l’instal·lador original sense canvis i descriviu la comprovació en lloc de donar-hi la volta. Aquesta distinció permet al mantenidor separar una regla de reconeixement massa estreta d’un límit real de compatibilitat binària, que són dos errors molt diferents amb dues correccions molt diferents.
Si la resposta és que la vostra plataforma no té suport, és un resultat utilitzable. Us diu que busqueu una compilació suportada en lloc de passar una altra tarda sobre fitxers d’identitat que mai no eren el problema.