Terminalak OpenSSL bertsio bat jakinarazten du gogotsu, eta iturburu-zuhaitzak oraindik huts egiten du falta diren kripto-goiburuei buruzko mezu batekin. Bi baieztapenak aldi berean dira egiazkoak, exekuzio-denbora tresna eta konpilazio-sarreren multzo bat bereiz banatzen direlako. Egin lau egiaztapen hauek ordenan: instalatutako paketeak, aurkikuntza-irteera, bilaketa-bideak eta, azkenik, iturburua bera bateragarria den. Gelditu hutsegitea azaltzen duen lehen egiaztapenean, mendekotasun-zerrenda zaharra itsatsi beharrean.

Exekuzio-denbora eta konpilazio-sarrerak pakete desberdinak dira

Banaketa batek OpenSSL exekuzio-denbora pakete batean banatzen du, liburutegi partekatua eta komando-lerroko tresna ematen dituena, eta garapen-pakete batean, goiburuak, bertsiorik gabeko esteka-izenak eta pkg-config metadatuak ematen dituena. Lehena instalatzeak ez du bigarrena instalatzen, eta konpilatzaileak bigarrena soilik behar du.

Egiaztatu zer dagoen benetan, instalatu zenuela gogoratzen duzuna baino. Debianen oinarritutako sistemetan garapen-paketea normalean libssl-dev izaten da, eta exekuzio-denbora, berriz, bertsiodun liburutegi-pakete bat gehi openssl binarya.

dpkg -l | grep -E 'libssl-dev|libssl3|openssl'
pkg-config --modversion openssl
openssl version

Lehen komandoak hiruretatik zein dagoen instalatuta erakusten du, bigarrenak konpilazio-sistemak pkg-config bidez aurkituko duen bertsioa ematen du, eta hirugarrenak exekuzio-denborako bertsioa ematen du. Lehen irteeran falta den lerro batek errorea berehala azaltzen du. Bigarrenaren eta hirugarrenaren arteko bertsio-desadostasuna beste arazo bat da, eta normalean bi instalaziok lehiatzen dutela esan nahi du.

Irakurri konpilazioaren beraren aurkikuntza-irteera

Hutsegite gehienak konfigurazio-erregistroan ikusten dira, laburpenaren aurretik irakurtzen baduzu. CMakeko FindOpenSSL moduluak zein include-direktorio eta zein liburutegi aurkitu zituen jakinarazten du, eta mezu zehatz batekin huts egiten du beharrezko osagai bat falta denean.

Egiaztatu proiektuak zein modulu-bertsio erabiltzen duen, iturburu-zuhaitzean barneko kopia batek instalatutako CMake-rekin datorrenak baino modu desberdinean joka baitezake. Ondoren irakurri osagai-zerrenda: Crypto soilik eskatzen duen proiektuak ez du SSL liburutegia behar, eta SSL eskatzen duenak huts egingo du garapen-paketearen zati bat soilik badago.

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
grep -i -E 'openssl|ssl' build/CMakeCache.txt

Lehen komandoak hutsetik berkonfiguratzen du, eta bigarrenak cachean gordetako emaitzak erakusten ditu, moduluak hautatu zuen erro-direktorioa edo liburutegi-bidea barne. Cacheak aurreko saiakera bateko aurrizki zaharrari seinalatzen badio, ezabatu konpilazio-direktorioa eta konfiguratu berriro, balioak eskuz editatu beharrean. Cache-sarrera zaharkituek zuzenketa zuzen baten ondorengo hutsegitearen ohiko kausa dira.

Zuzendu konpilazioa instalazio egokira, estu

Onartutako OpenSSL bat bilaketa-bide lehenetsitik kanpo dagoenean, FindOpenSSL(e)k OPENSSL_ROOT_DIR dokumentatzen du konpilazio zehatz horretarako iradokizun gisa. Unix motako sistemetan pkg-config ere kontsultatzen du, beraz PKG_CONFIG_PATH egoki batek lagun dezake ezer globalki aldatu gabe.

cmake -S . -B build -DOPENSSL_ROOT_DIR=/opt/openssl-3.2 -DCMAKE_BUILD_TYPE=Release
ldd build/vpn_client | grep -i ssl

Lehen komandoak iradokizuna konpilazio-direktorio bakar batera mugatzen du, eta bigarrenak erakusten du zein liburutegi partekatu kargatuko duen lortutako binaryak exekuzio-denboran. Aurrez ikusitako aurrizkiari estekatzen zaion konpilazio bat eta beste bat kargatzen duen binary bat exekuzio-denbora bideko arazoa da, ez aurkikuntza-arazoa, eta rpath edo kargatzailearen konfigurazioaren erabakia eskatzen du, beste konfigurazio-bandera batena ez.

Eduki itzazu aukera hauek konpilazioan bertan. Sistemako liburutegiak ordezkatzea edo pkg-config fitxategi globalak editatzea proiektu bakarra asetzeko da lan-mahaia funtzionatzen duen batetik hondatutako bat bihurtzeko bidea. Aurrizkia erregistratzen duen konpilazio-direktorioa erreproduzitzeko modukoa da; makina osorako aldaketa bat hurrengo proiektuaren zain dagoen sostengu-gertakaria da. Ezabatu konpilazio-direktorioa iradokizuna aldatzen duzunean, cacheak erantzun zaharra ezin dezan gorde.

Jakin noiz den iturburua arazoa

Konfigurazio-urrats arrakastatsu batek egiaztapenak osatu zirela frogatzen du soilik. Konpilazioak iturburuak espero duen API bat oraindik bazter dezake, eta estekatzeak oraindik huts egin dezake falta den sinbolo batengatik. Gorde etapa bakoitzeko lehen errore zehatza, ondorengoak normalean ondorioak izaten baitira.

OpenSSL 3(e)k zaharkitutzat jo eta kendu zituen VPN bezero zaharragoek zuzenean erabiltzen dituzten hainbat interfaze, beraz garai hartako iturburu-zuhaitz batek benetako aldaketak behar izan ditzake include-bide berri baten ordez. Mantentzaileek uneko bertsio bat onartzen badute, erabili hori. Ez badute, erabakia zerbitzuaren jabea denaren esku dago, liburutegi-fitxategi izen zaharrago baten bilaketaren esku ez.

Aukerako mahaigaineko osagaiek ere badituzte beren baldintzak. Garbi konfiguratzen den komando-lerroko helburu batek ez du ezer esaten GUI tresna-multzoak eta editoreak konpilatuko duten ala ez, beraz tratatu Qt pakete-zerrenda zaharra historia gisa, ez zehaztapen gisa. Egiaztatu iturburu-berrikuspenaren beraren aukerak zein interfaze dauden gaituta lehenespenez. Ondoren konpilatu behar duzuna soilik, aukerako mendekotasun bakoitza gertatzeko zain dagoen aurkikuntza-arazo bat baita.

Erlazionatutako artikuluak