OpenConnect macOS:ssä: paketti, julkaisuarkisto vai git-klooni
Homebrew asentaa binäärin ja verkko-skriptin; lähdekoodipuu ei tarjoa kumpaakaan ennen kuin luot ja suoritat ne. Tiedä, kumpaa yhteytesi käyttää.
Kolme tietä tuovat OpenConnect-asiakkaan Macille, ja ne jättävät levylle eri asioita. Homebrew-kaava asentaa käännetyn binäärin ja verkko-skriptin, joka määrittää reitit ja DNS:n. Julkaisuarkisto antaa lähdekoodin luodulla koontijärjestelmällä. git-tarkistus antaa lähdekoodin ilman sitä. Väärän valitseminen on syy siihen, miksi ihmisiltä puuttuu configure pari minuuttia oppaan alusta.
Kaksi eri konetta saman nimen alla
Paketin polku on yksi komento, ja se on oikea oletus jokaiselle, jonka työ on yhdistää eikä kehittää.
brew install openconnect
Se, mitä se asentaa, on tärkeämpää kuin komento. Saat asiakkaan binäärin ja myös vpnc-script-skriptin, jota asiakas kutsuu ohjelmoidakseen liitännän, reitit ja ratkaisijan. Ne kaksi toimivat parina: binääri lopettaa TLS-istunnon ja luovuttaa syntyneen liitännän skriptille, ja skripti on se osa, joka tietää, miten tämä käyttöjärjestelmä haluaa verkkoaan muutettavan.
Tämä jako selittää kokonaisen luokan hämmentäviä raportteja. Asiakas, joka yhdistää, raportoi onnistumisesta ja lähettää sitten liikennettä väärälle reitille, kärsii yleensä skriptiongelmasta eikä tunneliongelmasta, ja kaavan uudelleenasennus korjaa sen vain siksi, että skriptikin asennetaan uudelleen. Tarkista kaavan nykyinen macOS- ja CPU-arkkitehtuurituki ennen kuin suunnittelet sen varaan; Mac, joka suorittaa kuorta täydellisesti, ei ehkä silti saa nykyistä sille rakennettua pakettia.
Mitä lähdekoodin polku todella tekee
Julkaisuarkisto saapuu luodun koontijärjestelmän kanssa, joten tuttu ./configure on olemassa alusta asti. git-tarkistuksessa ei, koska luodut tiedostot ovat koontituotteita eivätkä asioita, joita projekti säilyttää. Juuri siksi ./autogen.sh esiintyy tarkistusten ohjeissa eikä julkaisuarkistojen ohjeissa.
./autogen.sh
./configure
make
make install
Jokainen rivi tekee jotain tiettyä, ja tieto siitä, mikä epäonnistui, säästää paljon arvailua. autogen-vaihe ajaa autotoolsit tuottaakseen tiedoston configure. configure-vaihe tutkii kääntäjän, kirjastot ja otsakkeet, joita asiakas tarvitsee, ja kirjoittaa sitten makefilet, jotka kuvastavat löydettyä. make-vaihe kääntää. install-vaihe kopioi tulokset jonnekin polullesi.
Juuri tuolla viimeisellä rivillä neuvo menee usein pieleen. Asennus ei ole todiste siitä, että koonti onnistui, ja sen suorittaminen mielivaltaisessa latauskansiossa korotetuilla oikeuksilla on hyvä tapa levittää tiedostoja, joita et myöhemmin muista. Jos configure epäonnistuu puuttuvan kirjaston vuoksi, hyödyllinen tuloste on ensimmäinen tulostettu virhe, ei lokin viimeiset kaksikymmentä riviä.
Istunto ja verkkokokoonpano ovat erillisiä
Tämä ero päättää, kuljettaako yhteys todella liikennettä. TLS-istunnon muodostaminen antaa liitännän asiakaspuolelle. Reittien, osoitteiden ja DNS-ratkaisijoiden käyttöönotto on toinen vaihe, joka tehdään verkko-skriptin kautta, ja koonnissa, joka tuotti binäärin ilman skriptiä, on puolikas asiakas.
Sama erottelu selittää, miksi kaksi konetta, joilla on identtiset asiakkaat, käyttäytyvät eri tavoin: skripti kysyy järjestelmän verkkokokoonpanoa, ja tuo kokoonpano sisältää kaiken muun, joka on vaatinut reitin. Kun jaettu tunneli lähettää liikennettä odottamattomaan paikkaan, tunneli tekee työnsä ja reitityspäätös on se, mitä pitää tutkia.
Kun siis vianmääritystä teet, kysy mikä kerros epäonnistui. Istunto, joka ei koskaan muodostu, on protokolla, varmenne tai tunnistetiedot. Istunto, joka muodostuu eikä välitä mitään, on liitäntä ja skripti. Asennettu asiakas, joka toimii yhdestä verkosta eikä toisesta, on tavoitettavuus, eikä mikään uudelleenkoonti muuta sitä.
Tiedä, mitä binääriä suoritat
Käsin asennettu koonti ja paketoitu binääri voivat elää sovussa rinnakkain, ja suoritettava riippuu polustasi, ei aikomuksistasi. Selvitä se ennen kuin ilmoitat versionumeron kenellekään.
which -a openconnect
openconnect --version
brew list --versions openconnect
Ensimmäinen komento luettelee jokaisen kopion, jonka kuoresi näkee, siinä järjestyksessä kuin se yrittäisi niitä. Toinen kertoo, mikä vastasi. Kun se ei vastaa odotustasi, suoritat koonnin vanhasta kokeilusta, eikä mikään kokoonpanomuutos siirrä sitä.
Asiakkaan asentaminen ei ole yhdyskäytävän hyväksyntä
Toimiva binääri ei tee käyttöönotosta yhteensopivaa. Vahvista yhdyskäytävän protokolla, sen todennusvirta ja mahdollinen hallitun laitteen vaatimus niiden ihmisten kanssa, jotka sen omistavat, koska ne ovat käytäntö- ja sovelluskerroksen tosiasioita, joita koonti ei voi tarjota.
Projektin rakennusohjeet käsittelevät autotools-jakson ja verkko-skriptin vaatimuksen yksityiskohtaisemmin, ja niitä tulee seurata eikä blogikirjoitusta, joka on vanhempi kuin macOS-julkaisusi. Jos tavoitteena on vain yhdistää, ota paketti, pidä skripti ja jätä kääntäjä ulkopuolelle.