Distro pavadinimas, glibc ar kompiliatorius: ką tikrina diegiklis
Diegiklis, atmetantis jūsų išvestinį distributyvą, gali skaityti distro pavadinimą, vykdymo aplinkos versiją arba kompiliatorių. Tik vienas iš jų lemia, ar dvejetainis failas gali veikti.
Diegiklis išspausdina “unsupported distribution”, jūs pakeičiate vieną eilutę ir jis tęsia, kol po minutės nepavyksta su įkroviklio klaida. Ši seka yra simptomas, kurį verta atpažinti: pirmoji nesėkmė buvo atpažinimo patikra, o antroji – suderinamumo riba. Tai dvi skirtingos problemos, kurios atsitiktinai pasirodo tame pačiame terminale. Pakeisti patikrą galima tik perkelti jus nuo pirmosios prie antrosios.
Simptomas: diegiklis sustoja ties jūsų išvestiniu distributyvu
Scenarijus, kuris nuskaito distributyvo pavadinimą ir atsisako tęsti, jums sako, kad jo autorius neišbandė jūsų išvestinio distributyvo. Tai palaikymo pareiškimas, o ne techninis faktas, ir dažnai jis klaidingas ta prasme, kad paketas veiktų gerai.
Bėda prasideda, kai laikinas sprendimas tampa planu. Pakeitus tapatybės failą patikra praeina, o paketas tada įkeliamas arba neįkeliamas prieš tai, kas iš tikrųjų įdiegta. Jei ten nepavyksta, joks tolesnis tapatybės keitimas nepadės.
Taigi naudingas žingsnis – išsiaiškinti, kokį klausimą uždavė diegiklis, o paskui išsiaiškinti, ar atsakymas būtų turėjęs reikšmės. Tai du atskiri tyrimai ir tik antrasis numato, ar paketas veiks.
Trys versijos, kurias žmonės vadina sistemos versija
Distributyvo leidimas įvardija supakuotą aplinką. C bibliotekos versija įvardija vykdymo aplinkos įgyvendinimą ir jo leidimą. Kompiliatoriaus versija įvardija įrankių grandinę. Pokalbyje žmonės visas tris vadina “sistemos versija”, o diegiklyje jos nėra keičiamos.
cat /etc/os-release ldd --version | head -1 gcc --version | head -1 uname -m
Iš anksto sukurtas programos paketas tikisi vykdymo aplinkos, kuri buvo jo susiejimo metu. Kompiliatorių keitimas pagrindiniame kompiuteryje jo iš naujo nesieja, o naujesnė įrankių grandinė nieko nekeičia įkroviklio simboliuose, kurių prašo dvejetainis failas. Architektūra vėl svarbi atskirai, nes 32 bitų paketas 64 bitų sistemoje nepavyksta dėl priežasčių, kurių nepaaiškina jokia versijos eilutė.
Saugokite keturis rezultatus kartu su ataskaita. Juos surinkti užtrunka dešimt sekundžių ir jie atsako į daugumą klausimų, kurių prižiūrėtojas kitaip paklaustų el. paštu.
Skaitykite klaidą, o ne patikrą
Pirmoji paleidimo klaida yra įrodymas. Pranešimas apie trūkstamą bendriną objektą arba apie simbolio versiją, kurios įkroviklis negali patenkinti, yra vykdymo aplinkos priklausomybės problema. Pranešimas, kartojantis distributyvo pavadinimą, vėl yra atpažinimo patikra, kitoje vietoje.
dinaminio ryšio programos dokumentacija aprašo, kaip veikia bibliotekų paieška ir kur ieško įkroviklis. Distributyvo etiketės pakeitimas neprideda katalogo į tą paieškos kelią, todėl antroji nesėkmė atrodo nesusijusi su pirmąja.
Nesinaudokite ldd atsisiųstame vykdomajame faile kaip įprastu pirmuoju žingsniu. Pati jo instrukcija įspėja, kad tam tikromis aplinkybėmis jis gali paleisti programą, o nepatikimo diegiklio paleidimas yra būtent tas atvejis, apie kurį tas įspėjimas.
Kodėl eilutės keitimas nepadeda
Operacinės sistemos tapatybės falsifikavimas keičia tai, kaip kiekviena mašinos programa mato save. Paketų tvarkytuvai, palaikymo įrankiai ir kitos programos skaito tą patį failą, o reikšmė, kuri patenkina vieną diegiklį, po mėnesių gali supainioti ką nors kitą.
Pagrindinio kompiuterio bibliotekų keitimas kitos distributyvo failų kopijomis yra blogiau. Tai gali sugadinti nesusijusią programinę įrangą, tai nematoma paketų tvarkytuvui ir tam reikia priežiūros plano, kurio niekas neužrašo. Tų pakeitimų nepateisina vienas ribojantis diegiklis.
Jei patikra tikrai yra atpažinimo trūkumas, prižiūrėtojas gali tai patvirtinti ir aprašyti palaikomą pataisą. Jei tai ne trūkumas, palaikomas kelias yra rinkinys jūsų platformai, ir tas atsakymas nesikeičia dėl to, kad eilutė buvo pakeista.
Parašykite ataskaitą, pagal kurią prižiūrėtojas gali veikti
Užrašykite distributyvą ir leidimą, architektūrą, VPN leidimą, tikslią atmestą sąlygą ir pirmąją vykdymo aplinkos klaidą, jei tiek nuėjote. Pažymėkite, ar ką nors keitėte, nes ataskaita iš pakeistos sistemos yra kita ataskaita.
Palikite originalų diegiklį nepakeistą ir aprašykite patikrą, o ne apeikite ją. Šis skirtumas leidžia prižiūrėtojui atskirti pernelyg siaurą atpažinimo taisyklę nuo tikros dvejetainio suderinamumo ribos, o tai yra dvi labai skirtingos klaidos su dviem labai skirtingomis pataisomis.
Jei atsakymas yra, kad jūsų platforma nepalaikoma, tai yra naudingas rezultatas. Jis sako ieškoti palaikomo rinkinio, o ne praleisti dar vieną vakarą prie tapatybės failų, kurie niekada nebuvo problema.