Numele distribuției, glibc sau compilatorul: ce verifică instalatorul
Un instalator care respinge derivata dvs. poate citi un nume de distribuție, o versiune de mediu de execuție sau un compilator. Doar unul dintre ele decide dacă binarul poate rula.
Instalatorul afișează “unsupported distribution”, editați un singur șir și acesta continuă până când eșuează un minut mai târziu cu o eroare a încărcătorului. Această succesiune este simptomul care merită recunoscut: prima eșuare a fost o verificare de recunoaștere, iar a doua este o limită de compatibilitate. Sunt două probleme diferite care apar întâmplător în același terminal. Editarea verificării nu poate decât să vă mute de la prima la a doua.
Simptomul: instalatorul se oprește la derivata dvs.
Un script care citește un nume de distribuție și refuză să continue vă spune că autorul său nu a testat derivata dvs. Este o declarație de suport și nu un fapt tehnic, și este adesea greșită în sensul că pachetul ar funcționa bine.
Problema începe când ocolul devine planul. Modificarea unui fișier de identitate face verificarea să treacă, iar pachetul se încarcă apoi, sau nu se încarcă, față de mediul de execuție care este efectiv instalat. Dacă eșuează acolo, nicio altă editare a identității nu va ajuta.
Prin urmare, pasul util este să aflați ce întrebare a pus instalatorul și apoi să aflați dacă răspunsul ar fi contat. Sunt două investigații separate și doar a doua prezice dacă pachetul va funcționa.
Trei versiuni pe care oamenii le numesc versiunea sistemului
O versiune de distribuție numește un mediu împachetat. O versiune de bibliotecă C numește o implementare a mediului de execuție și versiunea acesteia. O versiune de compilator numește un lanț de unelte. În conversație oamenii le numesc pe toate trei “versiunea sistemului”, iar într-un instalator nu sunt interschimbabile.
cat /etc/os-release ldd --version | head -1 gcc --version | head -1 uname -m
O aplicație precompilată așteaptă mediul de execuție prezent când a fost legată. Schimbarea compilatoarelor pe gazdă nu o leagă din nou, iar un lanț de unelte mai nou nu schimbă nimic în simbolurile încărcătorului pe care le cere binarul. Arhitectura contează din nou separat, deoarece un pachet pe 32 de biți pe un sistem pe 64 de biți eșuează din motive pe care niciun șir de versiune nu le explică.
Păstrați cele patru ieșiri împreună cu raportul. Colectarea lor durează zece secunde și răspund la majoritatea întrebărilor pe care un întreținător vi le-ar pune altfel prin e-mail.
Citiți eroarea, nu verificarea
Prima eroare de lansare este dovada. Un mesaj despre un obiect partajat lipsă, sau despre o versiune de simbol pe care încărcătorul nu o poate satisface, este o problemă de dependență de mediul de execuție. Un mesaj care repetă numele distribuției este din nou verificarea de recunoaștere, în alt loc.
documentația linkerului dinamic descrie cum funcționează căutarea bibliotecilor și unde caută încărcătorul. Schimbarea unei etichete de distribuție nu adaugă un director pe acea cale de căutare, motiv pentru care a doua eșuare pare fără legătură cu prima.
Nu apelați la ldd pe un executabil descărcat ca prim pas obișnuit. Manualul propriu avertizează că poate executa programul în anumite circumstanțe, iar rularea unui instalator neîncrezut este exact cazul la care se referă acel avertisment.
De ce editarea șirului nu ajută
Falsificarea identității sistemului de operare schimbă modul în care fiecare program de pe mașină se vede pe sine. Managerii de pachete, uneltele de suport și alte aplicații citesc același fișier, iar o valoare care satisface un instalator poate încurca altceva luni mai târziu.
Înlocuirea bibliotecilor gazdei cu fișiere din altă distribuție este mai rău. Poate strica software nelegat, este invizibilă pentru managerul de pachete și necesită un plan de întreținere pe care nimeni nu îl scrie. Acele schimbări nu sunt justificate de un singur instalator restrictiv.
Dacă verificarea este într-adevăr un defect de recunoaștere, întreținătorul îl poate confirma și descrie corectura acceptată. Dacă nu este un defect, calea acceptată este o compilare pentru platforma dvs., iar acel răspuns nu se schimbă pentru că șirul a fost editat.
Scrieți un raport pe baza căruia întreținătorul poate acționa
Notați distribuția și versiunea, arhitectura, versiunea VPN, condiția exactă care a fost respinsă și prima eroare a mediului de execuție dacă ați ajuns până acolo. Menționați dacă ați modificat ceva, deoarece un raport dintr-un sistem modificat este alt raport.
Lăsați instalatorul original neschimbat și descrieți verificarea în loc să o ocoliți. Această distincție îi permite întreținătorului să separe o regulă de recunoaștere prea îngustă de o limită reală de compatibilitate binară, iar acestea sunt două erori foarte diferite cu două corecturi foarte diferite.
Dacă răspunsul este că platforma dvs. nu este acceptată, este un rezultat utilizabil. Vă spune să căutați o compilare acceptată în loc să petreceți încă o seară pe fișiere de identitate care nu au fost niciodată problema.