Preimenovanje kriptografske knjižnice ne popravi starega odjemalca
Simbolična povezava spremeni, katero datoteko odpre nalagalnik, ne vmesnika, za katerega je bila binarna datoteka zgrajena. Preden se dotaknete katere koli knjižnice, preverite vrsto napake.
Pojdite skozi napako nalagalnika po vrsti: katera datoteka manjka, katero arhitekturo uporablja binarna datoteka, kateri simbol je želela, in ali se je napaka zgodila pred ali po zagonu procesa. To so štirje različni problemi, simbolična povezava pa reši le prvega. Izvajanje po vrsti prepreči običajen izid, ko se odjemalec zažene in nato spodleti pri prvem handshakeu. Seznam se konča s preverjanjem prek pravega zaganjalnika in ne z ročnim preskusom.
Preden karkoli spremenite, dobesedno zapišite pot do izvršljive datoteke, njeno arhitekturo in prvo napako.
Štiri različne odpovedi za eno napako
Manjkajoči skupni objekt je težava iskanja datoteke: nalagalnik je iskal ime in ni našel ničesar. Manjkajoči simbol je težava vmesnika: datoteka obstaja in ne izvaža tega, na kar se sklicuje binarna datoteka. Neujemanje različice simbola je ista vrsta z več podrobnostmi. Nepodprt algoritem, sporočen po zagonu, je sprememba vedenja znotraj knjižnice, ki se je uspešno naložila. Vsak zahteva drugačen odziv in le prvi je vprašanje imena.
ldd na binarno datoteko in readelf -d na njen dinamični odsek pokažeta, kaj zahteva, kar običajno zadostuje za ločevanje težave z datoteko od težave z vmesnikom.
Kaj OpenSSL 3 v resnici zahteva
Vodnik za migracijo na OpenSSL 3 je jasen: aplikacije, zgrajene za starejše različice, potrebujejo vsaj ponovno prevajanje, združljivost izvorne kode pa ni zagotovljena. Vmesniki so se spremenili, nekateri so bili opuščeni ali odstranjeni. Vzdevek imena datoteke ne more izvesti ponovnega prevajanja in stare binarne datoteke ne more naučiti novega vmesnika. Povezovanje novejše knjižnice pod imenom, ki izgleda starejše, ustvari program, ki se lahko zažene in nato spodleti na veliko manj očitnem mestu.
To je slabše od čiste napake. Napaka nalagalnika takoj poimenuje težavo, medtem ko pozna odpoved znotraj operacije izgleda kot težava z omrežjem ali poverilnicami in preusmeri preiskavo v napačno smer.
Zakaj je distribucijska knjižnica napačno mesto
Zamenjava distribucijske knjižnice, da bi zadovoljili enega odjemalca, spremeni okolje za vsak program na stroju, vključno z varnostnimi posodobitvami in vsem, kar se opira na obstoječi vmesnik. Kopiranje stare knjižnice ob binarno datoteko je ožje, a še vedno ustvari odvisnost, ki jo mora nekdo vzdrževati in krpati. Nobeno od tega ni odobrena pot združljivosti, tudi če se na dan uporabe zdi, da deluje. Globalni vzdevek, ki ostane po poskusu, je slabši, ker se nihče ne spomni, zakaj obstaja.
Uporabite ponudnikovega podprtega odjemalca in nabor odvisnosti za dejansko različico operacijskega sistema, arhitekturo in prehod. Oblika paketa, ki je delovala pri eni osebi, ne dokazuje pravilne trenutne poti, arhivirani recept pa je dokaz o preteklosti.
Preverite zaganjalnik, ne zagona
Po podprti zamenjavi preverite, kaj razreši običajni zaganjalnik: ldd na nameščeno izvršljivo datoteko, različice knjižnic, ki jih navaja, in okolje, ki ga storitev posreduje. Nato zaženite predvideno preverjanje pristnosti in eno resnično operacijo. Ročni klic s spremenjenim okoljem dokaže le, da ga vaša lupina lahko zažene. Uporabniki v resnici zaženejo zaganjalnik, vnos na namizju ali storitveno enoto.
Če podprte gradnje ni, vprašajte lastnika VPN za alternativo ali pot migracije. Tiho preklapljanje na drug protokol ali domneva, da odjemalec z znanim imenom ponudnika zadovolji prehod, napako premakne, namesto da bi jo odpravilo.
Kjer se začasni dogovor o združljivosti ni mogoče izogniti, ga dokumentirajte, omejite na to binarno datoteko in odstranite, ko pride podprta gradnja.