openssl විධානය වැඩ කරන නමුත් VPN ගොඩනැගීම අසාර්ථක වන්නේ ඇයි
වැඩ කරන openssl ද්විමය ගොනුවක් ශීර්ෂක සහ සම්බන්ධක පුස්තකාල ගැන කිසිවක් නොකියයි. සංවර්ධන පැකේජය, ඉලක්ක ගෘහ නිර්මාණය සහ ගොඩනැගීමේ සොයාගැනීම් ලොගය පරීක්ෂා කරන්න.
පර්යන්තය සතුටින් OpenSSL අනුවාදයක් වාර්තා කරයි, නමුත් මූලාශ්ර ගස තවමත් නැති වූ ක්රිප්ටෝ ශීර්ෂක පිළිබඳ පණිවිඩයක් සමඟ අසාර්ථක වේ. ප්රකාශන දෙකම එකම වේලාවේ සත්ය වේ, මන්ද ධාවන කාල මෙවලම සහ ගොඩනැගීම් ආදාන කට්ටලය වෙන වෙනම සපයනු ලැබේ. මෙම චෙක්පත් හතර අනුපිළිවෙලින් කරන්න: ස්ථාපිත පැකේජ, සොයාගැනීම් ප්රතිදානය, සෙවුම් මාර්ග, සහ පසුව මූලාශ්රයම ගැලපේද යන්න. පැරණි යැපුම් ලැයිස්තුවක් අලවනවාට වඩා අසාර්ථකත්වය පැහැදිලි කරන පළමු චෙක්පතේ නවතින්න.
ධාවන කාලය සහ ගොඩනැගීම් ආදාන වෙනස් පැකේජ වේ
බෙදාහැරීමක් OpenSSL බෙදන්නේ බෙදාගත් පුස්තකාලය සහ විධාන රේඛා මෙවලම සපයන ධාවන කාල පැකේජයකට සහ ශීර්ෂක, අනුවාද රහිත සම්බන්ධක නම් සහ pkg-config පාරදත්ත සපයන සංවර්ධන පැකේජයකට ය. පළමුවැන්න ස්ථාපනය කිරීම දෙවැන්න ස්ථාපනය නොකරයි, සහ සම්පාදකයට අවශ්ය වන්නේ දෙවැන්න පමණි.
ඔබ ස්ථාපනය කළා යැයි මතක ඇති දෙයට වඩා සැබවින්ම ඇති දෙය පරීක්ෂා කරන්න. Debian පාදක පද්ධතිවල සංවර්ධන පැකේජය සාමාන්යයෙන් libssl-dev වන අතර, ධාවන කාලය අනුවාදිත පුස්තකාල පැකේජයක් සහ openssl ද්විමය ගොනුවකි.
dpkg -l | grep -E 'libssl-dev|libssl3|openssl' pkg-config --modversion openssl openssl version
පළමු විධානය තුනෙන් කුමක් ස්ථාපිතද පෙන්වයි, දෙවැන්න ගොඩනැගීමේ පද්ධතිය pkg-config හරහා සොයාගන්නා අනුවාදය වාර්තා කරයි, සහ තුන්වැන්න ධාවන කාල අනුවාදය වාර්තා කරයි. පළමු ප්රතිදානයේ නැති වූ පේළියක් දෝෂය වහාම පැහැදිලි කරයි. දෙවැන්න සහ තුන්වැන්න අතර අනුවාද වෙනස වෙනත් ගැටලුවක් වන අතර, සාමාන්යයෙන් එහි තේරුම ස්ථාපන දෙකක් තරඟ කරන බවයි.
ගොඩනැගීමේම සොයාගැනීම් ප්රතිදානය කියවන්න
සාරාංශයට පෙර කියවන්නේ නම් බොහෝ අසාර්ථකතා වින්යාස ලොගයේ පෙනේ. CMake හි FindOpenSSL මොඩියුලය කුමන include නාමාවලිය සහ කුමන පුස්තකාල සොයාගත්තාද වාර්තා කරයි, සහ අවශ්ය සංරචකයක් නොමැති විට නිශ්චිත පණිවිඩයක් සමඟ අසාර්ථක වේ.
ව්යාපෘතිය භාවිත කරන මොඩියුල අනුවාදය තහවුරු කරන්න, මන්ද මූලාශ්ර ගස තුළ බහාලන ලද පිටපත ස්ථාපිත CMake සමඟ එන පිටපතට වඩා වෙනස් ලෙස හැසිරිය හැක. පසුව සංරචක ලැයිස්තුව කියවන්න: Crypto පමණක් ඉල්ලන ව්යාපෘතියට SSL පුස්තකාලය අවශ්ය නැත, සහ SSL ඉල්ලන ව්යාපෘතිය සංවර්ධන පැකේජයේ කොටසක් පමණක් ඇත්නම් අසාර්ථක වේ.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release grep -i -E 'openssl|ssl' build/CMakeCache.txt
පළමු විධානය මුල සිට නැවත වින්යාස කරයි, දෙවැන්න මොඩියුලය නතර වූ ඕනෑම මූල නාමාවලියක් හෝ පුස්තකාල මාර්ගයක් ඇතුළුව හැඹිලිගත ප්රතිඵල පෙන්වයි. හැඹිලිය පෙර උත්සාහයක පැරණි උපසර්ගයක් වෙත යොමු කරන්නේ නම්, අගයන් අතින් සංස්කරණය කරනවාට වඩා ගොඩනැගීම් නාමාවලිය මකා නැවත වින්යාස කරන්න. කල් ඉකුත් වූ හැඹිලි සටහන් නිවැරදි අලුත්වැඩියාවකින් පසුවත් පවතින අසාර්ථකත්වයේ පොදු හේතුවකි.
ගොඩනැගීම නිවැරදි ස්ථාපනය වෙත පටුව යොමු කරන්න
අනුමත OpenSSL පෙරනිමි සෙවුම් මාර්ගයෙන් පිටත පවතින විට, FindOpenSSL OPENSSL_ROOT_DIR එම නිශ්චිත ගොඩනැගීම සඳහා ඉඟියක් ලෙස ලේඛනගත කරයි. Unix වැනි පද්ධතිවල එය pkg-config ද විමසයි, එබැවින් සුදුසු PKG_CONFIG_PATH ගෝලීයව කිසිවක් නොවෙනස්ව උපකාර විය හැක.
cmake -S . -B build -DOPENSSL_ROOT_DIR=/opt/openssl-3.2 -DCMAKE_BUILD_TYPE=Release ldd build/vpn_client | grep -i ssl
පළමු විධානය ඉඟිය එක් ගොඩනැගීම් නාමාවලියකට සීමා කරයි, දෙවැන්න ප්රතිඵලයක් ලෙස ලැබෙන ද්විමය ගොනුව ධාවන කාලයේ පූරණය කරන බෙදාගත් පුස්තකාලය පෙන්වයි. අපේක්ෂිත උපසර්ගයට සම්බන්ධ වන ගොඩනැගීමක් සහ වෙනත් එකක් පූරණය කරන ද්විමය ගොනුවක් ධාවන කාල මාර්ග ගැටලුවකි, සොයාගැනීමේ ගැටලුවක් නොවේ, සහ එයට තවත් වින්යාස ධජයක් වෙනුවට rpath හෝ පූරක වින්යාසය පිළිබඳ තීරණයක් අවශ්ය වේ.
මෙම තේරීම් ගොඩනැගීමට පමණක් ස්ථානීයව තබා ගන්න. එක් ව්යාපෘතියක් සතුටු කිරීමට පද්ධති පුස්තකාල ප්රතිස්ථාපනය කිරීම හෝ ගෝලීය pkg-config ගොනු සංස්කරණය කිරීම වැඩ කරන ඩෙස්ක්ටොපයක් කැඩුණු එකක් බවට පත්වන මාර්ගයයි. උපසර්ගය සටහන් කරන ගොඩනැගීම් නාමාවලිය ප්රතිනිෂ්පාදනය කළ හැකි ය; මුළු යන්ත්රය පුරා වෙනසක් ඊළඟ ව්යාපෘතිය එනතුරු බලා සිටින ආධාරක සිදුවීමකි. ඉඟිය වෙනස් කරන විට ගොඩනැගීම් නාමාවලිය මකන්න, එවිට හැඹිලියට පැරණි පිළිතුර තබා ගත නොහැක.
ගැටලුව මූලාශ්රයේම ඇත්නම් කවදාදැයි දැන ගන්න
සාර්ථක වින්යාස පියවරක් ඔප්පු කරන්නේ චෙක්පත් අවසන් වූ බව පමණි. සම්පාදනය තවමත් මූලාශ්රය අපේක්ෂා කරන API එකක් ප්රතික්ෂේප කළ හැක, සහ සම්බන්ධකය නැති වූ සංකේතයක් නිසා තවමත් අසාර්ථක විය හැක. එක් එක් අදියරේ පළමු නිශ්චිත දෝෂය තබා ගන්න, මන්ද පසුව එන ඒවා සාමාන්යයෙන් ප්රතිවිපාක වේ.
OpenSSL 3 පැරණි VPN සේවාලාභීන් සෘජුව භාවිත කරන අතුරුමුහුණත් කිහිපයක් කල් ඉකුත් ලෙස ප්රකාශ කර ඉවත් කළේය, එබැවින් එකල මූලාශ්ර ගසකට නව include මාර්ගයක් වෙනුවට සැබෑ වෙනස්කම් අවශ්ය විය හැක. නඩත්තු කරන්නන් වර්තමාන නිකුතුවක් ආධාර කරන්නේ නම් එය භාවිත කරන්න. නොකරන්නේ නම්, තීරණය සේවාව හිමි අයට අයත් වේ, පැරණි පුස්තකාල ගොනු නාමයක් සොයා යාමට නොවේ.
විකල්ප ඩෙස්ක්ටොප් සංරචකවලටද තමන්ගේම අවශ්යතා ඇත. පිරිසිදුව වින්යාස වන විධාන රේඛා ඉලක්කයක් GUI මෙවලම් කට්ටලය සහ සංස්කාරකය ගොඩනැගේද යන්න ගැන කිසිවක් නොකියයි, එබැවින් පැරණි Qt පැකේජ ලැයිස්තුවක් පිරිවිතරයක් ලෙස නොව ඉතිහාසයක් ලෙස සලකන්න. කුමන අතුරුමුහුණත් පෙරනිමියෙන් සක්රීයද යන්න මූලාශ්ර සංශෝධනයේම විකල්පවලින් පරීක්ෂා කරන්න. පසුව අවශ්ය දේ පමණක් ගොඩනගන්න, මන්ද සෑම විකල්ප යැපුමක්ම සිදුවීමට බලා සිටින තවත් සොයාගැනීම් ගැටලුවකි.