Hvers vegna openssl-skipunin virkar en VPN-smíðin mistekst
Virkandi openssl-tvítákna segir ekkert um hausaskrár og tengslasöfn. Athugaðu þróunarpakkann, markarkitektúrinn og uppgötvunarskránna frá smíðinni.
Skjástýran tilkynnir fúslega OpenSSL-útgáfu, og upprunatréð mistekst samt með skilaboðum um skort á dulkóðunarhausum. Báðar fullyrðingarnar eru sannar á sama tíma, því keyrslutólið og mengi smíðainntaka eru afhent sér. Farðu í gegnum þessar fjórar athuganir í röð: uppsettu pakkarnir, uppgötvunarúttak, leitarbrautir og að lokum hvort uppruninn sjálfur sé samhæfður. Stöðvaðu við þá fyrstu sem útskýrir mistökin í stað þess að líma gamlan háðlistar.
Keyrsla og smíðainntök eru mismunandi pakkar
Dreifing skiptir OpenSSL í keyrslupakka sem gefur sameiginlegu bókasafnið og skipanalínutólið, og þróunarpakka sem gefur hausa, útgáfulaus tengslanöfn og pkg-config lýsigögn. Að setja upp þann fyrri setur ekki upp þann seinni, og þýðandinn þarf aðeins þann seinni.
Athugaðu hvað er raunverulega til staðar frekar en það sem þú manst að þú hafir sett upp. Á Debian-undirstöðuðum kerfum er þróunarpakkinn venjulega libssl-dev, en keyrslan er útgáfumerktur bókasafnspakki auk openssl-tvítáknsins.
dpkg -l | grep -E 'libssl-dev|libssl3|openssl' pkg-config --modversion openssl openssl version
Fyrsta skipunin sýnir hver þriggja er uppsettur, önnur tilkynnir þá útgáfu sem smíðarkerfið finnur í gegnum pkg-config, og þriðja tilkynnir keyrsluútgáfuna. Vantar lína í fyrsta úttakinu útskýrir villuna samstundis. Útgáfumunur milli annarrar og þriðju er annað vandamál, og venjulega þýðir hann að tvær uppsetningar keppa.
Lestu uppgötvunarúttak smíðarinnar sjálfrar
Flest mistök sjást í stillingaskránni ef þú lest hana fyrir samantektina. FindOpenSSL-eining CMake tilkynnir hvaða include-möppu og hvaða bókasöfn hún fann, og hún mistekst með sérstökum skilaboðum þegar nauðsynlegur hluti vantar.
Staðfestu hvaða einingarútgáfu verkefnið notar, því afrit sem er innifalið í upprunatrénu getur hegðað sér öðruvísi en það sem fylgir uppsettu CMake. Lestu síðan hlutalistann: verkefni sem biður aðeins um Crypto þarf ekki SSL-bókasafnið, og það sem biður um SSL mistekst ef aðeins hluti þróunarpakkans er til staðar.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release grep -i -E 'openssl|ssl' build/CMakeCache.txt
Fyrsta skipunin stillir upp á ný frá grunni, og önnur sýnir niðurstöðurnar í skyndiminninu, þar á meðal hvaða rótarmöppu eða bókasafnsslóð einingin lenti á. Ef skyndiminnið bendir á gamalt forskeyti frá fyrri tilraun skaltu eyða smíðamöppunni og stilla upp á ný í stað þess að breyta gildum handvirkt. Úreltar færslur í skyndiminninu eru algeng orsök mistaka sem lifa af rétta lagfæringu.
Beindu smíðinni að réttu uppsetningunni, þröngt
Þegar samþykkt OpenSSL er utan sjálfgefinnar leitarleiðar skráir FindOpenSSL OPENSSL_ROOT_DIR sem vísbendingu fyrir þá tilteknu smíð. Á Unix-líkum kerfum leitar það einnig til pkg-config, svo viðeigandi PKG_CONFIG_PATH getur hjálpað án þess að breyta nokkru á heimsvísu.
cmake -S . -B build -DOPENSSL_ROOT_DIR=/opt/openssl-3.2 -DCMAKE_BUILD_TYPE=Release ldd build/vpn_client | grep -i ssl
Fyrsta skipunin takmarkar vísbendinguna við eina smíðamöppu, og önnur sýnir hvaða sameiginlegu bókasafni afurðin hleður á keyrslutíma. Smíð sem tengist við fyrirhugað forskeyti og tvítákn sem hleður öðru er vandamál keyrsluleiðar, ekki uppgötvunarvandamál, og það krefst ákvörðunar um rpath eða stillingu hleðslutólsins í stað annars stillimerkis.
Haltu þessum valkostum staðbundnum við smíðina. Að skipta út kerfisbókasöfnum eða breyta alþjóðlegum pkg-config skrám til að fullnægja einu verkefni er leiðin sem virk skjáborð verða óvirk. Smíðamappa sem skráir forskeytið er endurtakanleg; breyting á öllu vélinni er stuðningsatvik sem bíður næsta verkefnis. Eyðu smíðamöppunni þegar þú breytir vísbendingunni, svo skyndiminnið geti ekki haldið gamla svarinu.
Vitaðu hvenær uppruninn er vandamálið
Árangursríkt stillingarskref sannar aðeins að athugununum sé lokið. Þýðing getur enn hafnað API sem uppruninn væntir, og tenging getur enn mistekist vegna tákns sem vantar. Geymdu fyrstu tilteknu villuna úr hverju stigi, því þær síðari eru venjulega afleiðingar.
OpenSSL 3 úreldi og fjarlægði nokkrar viðmót sem eldri VPN-biðlarar nota beint, svo upprunatré frá þeim tíma gæti þurft raunverulegar breytingar í stað nýrrar include-slóðar. Ef viðhaldsaðilar styðja núverandi útgáfu skaltu nota hana. Ef ekki, tilheyrir ákvörðunin þeim sem á þjónustuna, ekki leit að eldra bókasafnsheiti.
Valfrjálsir skjáborðshlutar hafa líka sínar kröfur. Skipanalínumerki sem stillist hreint segir ekkert um hvort GUI-tólasettið og ritillinn byggist, svo meðhöndlaðu gamlan Qt-pakkalista sem sögu en ekki sem forskrift. Athugaðu eigin valkosti upprunatréssins varðandi hvaða viðmót eru virk sjálfgefið. Byggðu síðan aðeins það sem þú þarft, því hvert valfrjálst háð er annað uppgötvunarvandamál sem bíður þess að gerast.