macOS પર OpenConnect: પેકેજ, રિલીઝ આર્કાઇવ કે git ક્લોન
Homebrew બાઇનરી અને નેટવર્ક સ્ક્રિપ્ટ આપે છે; સોર્સ ટ્રી તેને જનરેટ અને ચલાવ્યા વિના કંઈ આપતું નથી. જાણો તમારું કનેક્શન કયું વાપરે છે.
Mac પર OpenConnect ક્લાયન્ટ મેળવવાના ત્રણ રસ્તા છે, અને તેઓ ડિસ્ક પર અલગ વસ્તુઓ મૂકે છે. Homebrew ફોર્મ્યુલા કમ્પાઇલ કરેલી બાઇનરી અને રૂટ તથા DNS ગોઠવતી નેટવર્ક સ્ક્રિપ્ટ ઇન્સ્ટોલ કરે છે. રિલીઝ આર્કાઇવ તમને જનરેટ થયેલી બિલ્ડ સિસ્ટમ સાથે સોર્સ કોડ આપે છે. git ચેકઆઉટ તમને તેના વિના સોર્સ કોડ આપે છે. ખોટું પસંદ કરવું એ કારણ છે કે લોકો ટ્યુટોરિયલની શરૂઆતના થોડા મિનિટમાં જ ખૂટતું configure અનુભવે છે.
એક જ નામ હેઠળ બે અલગ મશીન
પેકેજનો રસ્તો એક જ આદેશ છે, અને જેમનું કામ વિકાસ કરવાને બદલે કનેક્ટ થવાનું છે તેમના માટે તે યોગ્ય ડિફોલ્ટ છે.
brew install openconnect
તે શું ઇન્સ્ટોલ કરે છે તે આદેશ કરતાં વધુ મહત્વનું છે. તમને ક્લાયન્ટની બાઇનરી મળે છે, અને vpnc-script પણ મળે છે જેને ક્લાયન્ટ ઇન્ટરફેસ, રૂટ અને રિઝોલ્વર પ્રોગ્રામ કરવા માટે બોલાવે છે. બંને જોડી તરીકે કામ કરે છે: બાઇનરી TLS સેશન સમાપ્ત કરે છે અને પરિણમેલું ઇન્ટરફેસ સ્ક્રિપ્ટને સોંપે છે, અને સ્ક્રિપ્ટ એ ભાગ છે જે જાણે છે કે આ ઓપરેટિંગ સિસ્ટમ પોતાનું નેટવર્ક કેવી રીતે બદલવા માંગે છે.
આ વિભાજન મૂંઝવણભર્યા અહેવાલોના આખા વર્ગને સમજાવે છે. કનેક્ટ થઈને સફળતા જાહેર કર્યા પછી ટ્રાફિક ખોટા માર્ગે મોકલતા ક્લાયન્ટમાં સામાન્ય રીતે સ્ક્રિપ્ટની સમસ્યા હોય છે, ટનલની નહીં, અને ફોર્મ્યુલા ફરી ઇન્સ્ટોલ કરવાથી તે માત્ર એટલા માટે સુધરે છે કે સ્ક્રિપ્ટ પણ ફરી ઇન્સ્ટોલ થાય છે. ફોર્મ્યુલાનું વર્તમાન macOS અને CPU આર્કિટેક્ચર સમર્થન તેના પર યોજના બનાવતાં પહેલાં તપાસો; જે Mac શેલ સંપૂર્ણ ચલાવે છે તેના માટે પણ કદાચ હજી વર્તમાન પેકેજ બન્યું ન હોય.
સોર્સનો રસ્તો ખરેખર શું કરે છે
રિલીઝ આર્કાઇવ જનરેટ થયેલી બિલ્ડ સિસ્ટમ સાથે આવે છે, તેથી જાણીતું ./configure શરૂઆતથી જ હોય છે. git ચેકઆઉટમાં નહીં, કારણ કે જનરેટ થયેલી ફાઇલો બિલ્ડ પેદાશો છે, પ્રોજેક્ટ જે વસ્તુઓ સંગ્રહે છે તે નહીં. ./autogen.sh ચેકઆઉટની સૂચનાઓમાં દેખાય અને આર્કાઇવમાં નહીં, તેનું આખું કારણ આ જ છે.
./autogen.sh
./configure
make
make install
દરેક લાઇન ચોક્કસ કંઈક કરે છે, અને કઈ નિષ્ફળ ગઈ તે જાણવું ઘણું અનુમાન બચાવે છે. autogen પગલું configure બનાવવા autotools ચલાવે છે. configure પગલું ક્લાયન્ટને જરૂરી કમ્પાઇલર, લાઇબ્રેરી અને હેડર તપાસે છે, પછી જે મળ્યું તે દર્શાવતી makefile લખે છે. make પગલું કમ્પાઇલ કરે છે. install પગલું પરિણામો તમારા પાથમાં ક્યાંક કોપી કરે છે.
તે છેલ્લી લાઇન પર જ સલાહ સામાન્ય રીતે ખોટી પડે છે. ઇન્સ્ટોલેશન એ બિલ્ડ કામ કર્યું તેનો પુરાવો નથી, અને તેને કોઈપણ ડાઉનલોડ ફોલ્ડરમાં ઊંચા અધિકારો સાથે ચલાવવું એ એવી ફાઇલો વેરવિખેર કરવાનો સારો રસ્તો છે જે પછી યાદ નહીં રહે. જો કોઈ લાઇબ્રેરી ન હોવાથી configure નિષ્ફળ જાય, તો ઉપયોગી આઉટપુટ તેની છાપેલી પ્રથમ ભૂલ છે, લોગની છેલ્લી વીસ લાઇન નહીં.
સેશન અને નેટવર્ક ગોઠવણી અલગ છે
આ ભેદ નક્કી કરે છે કે કનેક્શન ખરેખર ટ્રાફિક વહન કરે છે કે નહીં. TLS સેશન સ્થાપિત કરવાથી તમને ક્લાયન્ટ બાજુ ઇન્ટરફેસ મળે છે. રૂટ, સરનામાં અને DNS રિઝોલ્વર લાગુ કરવું એ નેટવર્ક સ્ક્રિપ્ટ દ્વારા થતું બીજું પગલું છે, અને સ્ક્રિપ્ટ વિના બાઇનરી બનાવનાર બિલ્ડ પાસે અડધો ક્લાયન્ટ હોય છે.
એ જ વિભાજન સમજાવે છે કે સમાન ક્લાયન્ટ ધરાવતા બે મશીન અલગ કેમ વર્તે છે: સ્ક્રિપ્ટ સિસ્ટમની નેટવર્ક ગોઠવણીની સલાહ લે છે, અને તે ગોઠવણીમાં રૂટ દાવો કરનારું બીજું જે કંઈ છે તેનો સમાવેશ થાય છે. જ્યારે સ્પ્લિટ ટનલ ટ્રાફિક અણધાર્યા સ્થળે મોકલે છે, ત્યારે ટનલ પોતાનું કામ કરે છે અને રૂટિંગ નિર્ણય એ છે જેની તપાસ કરવી જોઈએ.
તેથી ડિબગ કરતી વખતે પૂછો કે કયો સ્તર નિષ્ફળ ગયો. જે સેશન કદી સ્થપાતું નથી તે પ્રોટોકોલ, પ્રમાણપત્ર કે ઓળખપત્રો છે. જે સેશન સ્થપાય છે અને કંઈ મોકલતું નથી તે ઇન્ટરફેસ અને સ્ક્રિપ્ટ છે. જે ઇન્સ્ટોલ થયેલો ક્લાયન્ટ એક નેટવર્કથી કામ કરે છે અને બીજાથી નહીં તે પહોંચ છે, અને કેટલી પણ પુનઃબિલ્ડ તેને બદલતી નથી.
જાણો તમે કઈ બાઇનરી ચલાવી રહ્યા છો
હાથે ઇન્સ્ટોલ કરેલી બિલ્ડ અને પેકેજ કરેલી બાઇનરી સાથે આનંદથી રહી શકે છે, અને કઈ ચાલશે તે તમારા પાથ પર આધાર રાખે છે, તમારા ઇરાદા પર નહીં. કોઈને આવૃત્તિ નંબર જણાવતાં પહેલાં આ શોધી કાઢો.
which -a openconnect
openconnect --version
brew list --versions openconnect
પ્રથમ આદેશ તમારો શેલ જોઈ શકે તે દરેક નકલને, તે જે ક્રમમાં અજમાવશે તે ક્રમમાં સૂચિબદ્ધ કરે છે. બીજો તમને કહે છે કે કઈ જવાબ આપ્યો. જ્યારે તે તમારી અપેક્ષા સાથે ન મળે, ત્યારે તમે જૂના પ્રયોગની બિલ્ડ ચલાવી રહ્યા છો, અને કોઈ ગોઠવણી ફેરફાર તેને ખસેડશે નહીં.
ક્લાયન્ટ ઇન્સ્ટોલ કરવું એ ગેટવે મંજૂરી નથી
કામ કરતી બાઇનરી ડિપ્લોયમેન્ટને સુસંગત બનાવતી નથી. ગેટવેનો પ્રોટોકોલ, તેનો પ્રમાણીકરણ પ્રવાહ અને મેનેજ્ડ ડિવાઇસની કોઈપણ જરૂરિયાત તેના માલિકો સાથે ખાતરી કરો, કારણ કે તે નીતિ અને એપ્લિકેશન સ્તરની હકીકતો છે જે બિલ્ડ આપી શકતું નથી.
પ્રોજેક્ટની બિલ્ડ સૂચનાઓ autotools ક્રમ અને નેટવર્ક સ્ક્રિપ્ટની જરૂરિયાતને વધુ વિગતમાં આવરી લે છે, અને તમારી macOS આવૃત્તિ કરતાં જૂની બ્લોગ પોસ્ટને બદલે તેમને અનુસરવાના સંદર્ભ તરીકે લો. જો ધ્યેય ફક્ત કનેક્ટ થવું હોય, તો પેકેજ લો, સ્ક્રિપ્ટ રાખો અને કમ્પાઇલરને બહાર રાખો.