It-terminal jirrapporta verżjoni ta' OpenSSL, u s-siġra tas-sors għadha tfalli b'messaġġ dwar headers kritografiċi neqsin. Iż-żewġ stqarrijiet huma veri fl-istess ħin, għax għodda tal-ħin tal-eżekuzzjoni u sett ta' inputs tal-bini jiġu fornuti b'mod separat. Agħmel dawn l-erba' verifiki fl-ordni: pakketti installati, output tat-tfittxija, mogħdijiet tat-tiftix, u mbagħad jekk is-sors innifsu huwiex kompatibbli. Ieqaf fl-ewwel waħda li tispjega l-falliment minflok ma tpejjep lista antika ta' dipendenzi.

Il-ħin tal-eżekuzzjoni u l-inputs tal-bini huma pakketti differenti

Distribuzzjoni taqsam OpenSSL f'pakkett tal-ħin tal-eżekuzzjoni li jipprovdi l-librerija kondiviża u l-għodda tal-linja tal-kmand, u pakkett tal-iżvilupp li jipprovdi headers, ismijiet tal-ħolqien mingħajr verżjoni u metadata tal-pkg-config. L-installazzjoni tal-ewwel ma tinstallax it-tieni, u l-kompilatur jeħtieġ biss it-tieni.

Iċċekkja x'inhu tassew preżenti minflok ma tiftakar x'installajt. Fuq sistemi msejsa fuq Debian il-pakkett tal-iżvilupp huwa normalment libssl-dev, filwaqt li l-ħin tal-eżekuzzjoni huwa pakkett tal-librerija bil-verżjoni flimkien mal-binajru openssl.

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

L-ewwel kmand juri liema mit-tlieta huwa installat, it-tieni jirrapporta l-verżjoni li s-sistema tal-bini se ssib permezz tal-pkg-config, u t-tielet jirrapporta l-verżjoni tal-ħin tal-eżekuzzjoni. Linja nieqsa fl-ewwel output tispjega l-iżball minnufih. Differenza fil-verżjoni bejn it-tieni u t-tielet hija problema oħra, u normalment tfisser li żewġ installazzjonijiet qegħdin jikkompetu.

Aqra l-output tat-tfittxija tal-bini stess

Ħafna mill-fallimenti jidhru fil-log tal-konfigurazzjoni jekk taqrah qabel is-sommarju. Il-modulu FindOpenSSL ta' CMake jirrapporta liema direttorju include u liema libreriji sab, u jfalli b'messaġġ speċifiku meta komponent meħtieġ ikun nieqes.

Ikkonferma liema verżjoni tal-modulu juża l-proġett, għax kopja miġbura ġewwa s-siġra tas-sors tista' taġixxi b'mod differenti minn dik fornuta mal-CMake installat. Imbagħad aqra l-lista tal-komponenti: proġett li jitlob biss Crypto m'għandux bżonn il-librerija SSL, u wieħed li jitlob SSL ifalli jekk tkun preżenti biss parti mill-pakkett tal-iżvilupp.

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

L-ewwel kmand jikkonfigura mill-ġdid mill-bidu, u t-tieni juri r-riżultati fil-cache, inkluż kwalunkwe direttorju għerq jew mogħdija tal-librerija li fuqha waqaf il-modulu. Jekk il-cache tipponta lejn prefiss antik minn attentat preċedenti, ħassar id-direttorju tal-bini u kkonfigura mill-ġdid minflok ma teditja l-valuri bl-idejn. L-entrati antiki tal-cache huma kawża komuni ta' falliment li jibqa' wara tiswija korretta.

Idderieġi l-bini lejn l-installazzjoni t-tajba, b'mod dojoq

Meta OpenSSL approvat jgħix barra mill-mogħdija tat-tiftix awtomatika, FindOpenSSL jiddokumenta OPENSSL_ROOT_DIR bħala ħjiel għal dak il-bini speċifiku. Fuq sistemi simili għal Unix jikkonsulta wkoll il-pkg-config, għalhekk PKG_CONFIG_PATH xieraq jista' jgħin mingħajr ma jbiddel xejn globalment.

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

L-ewwel kmand jillimita l-ħjiel għal direttorju tal-bini wieħed, u t-tieni juri liema librerija kondiviża l-binajru li jirriżulta se jgħabbi fil-ħin tal-eżekuzzjoni. Bini li jaqbad mal-prefiss maħsub u binajru li jgħabbi ieħor hija problema tal-mogħdija fil-ħin tal-eżekuzzjoni, mhux problema tat-tfittxija, u teħtieġ deċiżjoni dwar rpath jew il-konfigurazzjoni tat-tagħbbija minflok bandiera oħra tal-konfigurazzjoni.

Żomm dawn l-għażliet lokali għall-bini. Is-sostituzzjoni tal-libreriji tas-sistema jew l-editjar tal-fajls pkg-config globali biex tissodisfa proġett wieħed hija t-triq li biha desktop li jaħdem isir miksur. Direttorju tal-bini li jirreġistra l-prefiss huwa riproduċibbli; bidla fuq il-magna kollha hija inċident ta' appoġġ li jistenna l-proġett li jmiss. Ħassar id-direttorju tal-bini meta tbiddel il-ħjiel, sabiex il-cache ma tkunx tista' żżomm it-tweġiba l-antika.

Kun af meta l-problema tkun is-sors

Pass ta' konfigurazzjoni b'suċċess jipprova biss li l-verifiki tlestew. Il-kompilazzjoni xorta tista' tirrifjuta API li s-sors jistenna, u l-ħolqien xorta jista' jfalli minħabba simbolu nieqes. Żomm l-ewwel żball speċifiku ta' kull stadju, għax dawk ta' wara normalment huma konsegwenzi.

OpenSSL 3 iddikjara skaduti u neħħa diversi interfaċċi li klijenti VPN anzjani jużaw direttament, għalhekk siġra tas-sors minn dak iż-żmien tista' teħtieġ bidliet reali minflok mogħdija include ġdida. Jekk il-mantenituri jappoġġaw rilaxx kurrenti, użah. Jekk le, id-deċiżjoni tappartjeni lil min jippossjedi s-servizz, mhux lit-tfittxija ta' isem antik ta' fajl tal-librerija.

Il-komponenti tad-desktop fakultattivi għandhom ukoll il-ħtiġijiet tagħhom. Mira tal-linja tal-kmand li tikkonfigura ruħha nadif ma tgħid xejn dwar jekk il-grupp ta' għodod GUI u l-editur se jinbnewx, għalhekk ittratta lista antika ta' pakketti Qt bħala storja u mhux bħala speċifikazzjoni. Iċċekkja l-għażliet tar-reviżjoni tas-sors innifisha dwar liema interfaċċi huma attivati b'mod awtomatiku. Imbagħad ibni biss dak li għandek bżonn, għax kull dipendenza fakultattiva hija problema oħra tat-tfittxija li tistenna sseħħ.

Artikli relatati