Երեք ուղի ձեզ տալիս են OpenConnect հաճախորդ Mac-ում, և նրանք տարբեր բաներ են թողնում սկավառակի վրա։ Homebrew բանաձևը տեղադրում է կոմպիլացված բինար ֆայլ և ցանցային սկրիպտ, որը կարգավորում է երթուղիները և DNS-ը։ Թողարկման արխիվը ձեզ տալիս է աղբյուրի կոդ՝ գեներացված կառուցման համակարգով։ git ստուգումը ձեզ տալիս է աղբյուրի կոդ՝ առանց դրա։ Սխալն ընտրելն այն պատճառն է, որ մարդիկ ձեռնարկի սկզբից մի քանի րոպե անց հանդիպում են բացակայող configure-ի։

Նույն անվան տակ երկու տարբեր մեքենաներ

Փաթեթի ուղին մեկ հրաման է, և դա ճիշտ լռելյայն ընտրությունն է բոլոր նրանց համար, ում աշխատանքը միանալն է, ոչ թե մշակելը։

brew install openconnect

Այն, ինչ տեղադրվում է, ավելի կարևոր է, քան հրամանը։ Դուք ստանում եք հաճախորդի բինար ֆայլը, ինչպես նաև vpnc-script, որը հաճախորդը կանչում է ինտերֆեյսը, երթուղիները և լուծիչը ծրագրավորելու համար։ Երկուսը աշխատում են որպես զույգ. բինար ֆայլը ավարտում է TLS սեսիան և ստացված ինտերֆեյսը հանձնում է սկրիպտին, իսկ սկրիպտը այն մասն է, որը գիտի, թե ինչպես է այս օպերացիոն համակարգը ցանկանում փոխել իր ցանցը։

Այս բաժանումը բացատրում է շփոթեցնող հաշվետվությունների մի ամբողջ դաս։ Հաճախորդը, որը միանում է, հաջողություն հայտնում և հետո տրաֆիկը ուղարկում է սխալ ուղիով, սովորաբար սկրիպտի, այլ ոչ թե թունելի խնդիր ունի, և բանաձևի վերատեղադրումը շտկում է այն միայն այն պատճառով, որ սկրիպտը նույնպես վերատեղադրվում է։ Ստուգեք բանաձևի ընթացիկ macOS և պրոցեսորի ճարտարապետության աջակցությունը նախքան դրա վրա պլանավորելը. այն Mac-ը, որը կատարյալ գործարկում է shell-ը, կարող է դեռ չունենալ դրա համար կառուցված ընթացիկ փաթեթ։

Ինչ է իրականում անում աղբյուրի ուղին

Թողարկման արխիվը գալիս է գեներացված կառուցման համակարգով, ուստի ծանոթ ./configure-ը գոյություն ունի հենց սկզբից։ git ստուգումը՝ ոչ, քանի որ գեներացված ֆայլերը կառուցման արդյունքներ են, ոչ թե բաներ, որ պրոյեկտը պահում է։ Սա է ամբողջ պատճառը, որ ./autogen.sh-ը հայտնվում է ստուգումների, այլ ոչ թողարկման արխիվների հրահանգներում։

./autogen.sh
./configure
make
make install

Յուրաքանչյուր տող անում է ինչ-որ կոնկրետ բան, և իմանալը, թե որն է ձախողվել, խնայում է շատ գուշակություններ։ autogen քայլը գործարկում է autotools-ը՝ configure ստեղծելու համար։ configure քայլը ստուգում է հաճախորդին անհրաժեշտ կոմպիլյատորը, գրադարանները և վերնագրերը, ապա գրում է makefile-ները, որոնք արտացոլում են գտնվածը։ make քայլը կոմպիլացնում է։ install քայլը պատճենում է արդյունքները ձեր ուղու ինչ-որ տեղ։

Հենց այդ վերջին տողում խորհուրդը սովորաբար սխալվում է։ Տեղադրումը չէ ապացույց, որ կառուցումն աշխատել է, և այն կամայական ներբեռնման պանակում բարձրացված իրավասություններով գործարկելը լավ միջոց է ցրելու ֆայլեր, որոնք հետո չեք հիշի։ Եթե configure-ը ձախողվում է բացակայող գրադարանի պատճառով, օգտակար արդյունքը նրա տպած առաջին սխալն է, ոչ թե մատյանի վերջին քսան տողերը։

Սեսիան և ցանցային կոնֆիգուրացիան առանձին են

Այս տարբերությունը որոշում է՝ կապը իրականում տրաֆիկ է տեղափոխում, թե ոչ։ TLS սեսիայի հաստատումը ձեզ տալիս է ինտերֆեյս հաճախորդի կողմում։ Երթուղիների, հասցեների և DNS լուծիչների կիրառումը երկրորդ քայլն է, որն արվում է ցանցային սկրիպտի միջոցով, և այն կառուցումը, որը բինար ֆայլ է ստեղծել առանց սկրիպտի, ունի կիսով հաճախորդ։

Նույն բաժանումը բացատրում է, թե ինչու նույնական հաճախորդներով երկու մեքենաներ տարբեր կերպ են վարվում. սկրիպտը խորհրդակցում է համակարգի ցանցային կոնֆիգուրացիայի հետ, և այդ կոնֆիգուրացիան ներառում է այն ամենը, ինչ երթուղի է պահանջել։ Երբ բաժանված թունելը տրաֆիկն ուղարկում է անսպասելի տեղ, թունելը կատարում է իր աշխատանքը, և ուսումնասիրելու ենթակա է երթուղային որոշումը։

Ուստի վրիպազերծելիս հարցրեք, թե որ շերտը ձախողվեց։ Սեսիան, որը երբեք չի հաստատվում, արձանագրություն, վկայագիր կամ հավատարմագրեր են։ Սեսիան, որը հաստատվում է և ոչինչ չի փոխանցում, ինտերֆեյսն ու սկրիպտն են։ Տեղադրված հաճախորդը, որն աշխատում է մի ցանցից և չի աշխատում մյուսից, հասանելիություն է, և ոչ մի վերակառուցում դա չի փոխի։

Իմացեք, թե որ բինար ֆայլն եք գործարկում

Ձեռքով տեղադրված կառուցումը և փաթեթավորված բինար ֆայլը կարող են խաղաղ գոյակցել, և թե որն է աշխատելու, կախված է ձեր ուղուց, ոչ թե մտադրություններից։ Պարզեք դա նախքան ինչ-որ մեկին տարբերակի համար հայտնելը։

which -a openconnect
openconnect --version
brew list --versions openconnect

Առաջին հրամանը թվարկում է ձեր shell-ի տեսած յուրաքանչյուր պատճենը՝ այն հերթականությամբ, որով այն կփորձեր դրանք։ Երկրորդը ասում է, թե որն է պատասխանել։ Երբ դա չի համընկնում ձեր սպասելիքների հետ, դուք գործարկում եք հին փորձից կառուցում, և ոչ մի կոնֆիգուրացիայի փոփոխություն այն չի տեղափոխի։

Հաճախորդ տեղադրելը դարպասի հաստատում չէ

Աշխատող բինար ֆայլը տեղաբաշխումը համատեղելի չի դարձնում։ Հաստատեք դարպասի արձանագրությունը, դրա նույնականացման հոսքը և կառավարվող սարքի ցանկացած պահանջ այն մարդկանց հետ, ովքեր տիրապետում են այն, որովհետև դրանք քաղաքականության և հավելվածային շերտի փաստեր են, որոնք կառուցումը չի կարող տրամադրել։

Նախագծի կառուցման հրահանգները ավելի մանրամասն նկարագրում են autotools հաջորդականությունը և ցանցային սկրիպտի պահանջը, և դրանք են, որ պետք է հետևել, այլ ոչ թե բլոգային գրառում, որն ավելի հին է, քան ձեր macOS թողարկումը։ Եթե նպատակը պարզապես միանալն է, վերցրեք փաթեթը, պահեք սկրիպտը և կոմպիլյատորին դուրս թողեք։

Առնչվող հոդվածներ