Asennus päättyy, brew kertoo openvpnin olevan paikalla, ja komentotulkki vastaa command not found. Binääri on olemassa, se vain sijaitsee hakemistossa, josta tulkkia ei koskaan kerrottu. Homebrew linkittää taustaohjelmatyyppiset binäärit etuliitteen sbin-hakemistoon, ja macOSin oletus-PATH sisältää yleensä bin-hakemiston eikä sbin-hakemistoa. Mikään ei ole rikki, eikä uudelleenasennus muuta sitä.

Neljä tarkistusta vahvistavat mekanismin ennen kuin muokkaat yhtään tulkin tiedostoa.

Mitä kaava oikeastaan asentaa

Openvpn-kaava rakentaa komentorivitaustaohjelman, joten sen suoritettava tiedosto päätyy sbinin alle eikä binin alle. Homebrew linkittää kyseisen binäärin etuliitteen sbin-hakemistoon, ja siksi "$(brew --prefix)/sbin/openvpn" --version toimii, kun taas pelkkä kutsu ei toimi. Versioon merkitty Cellar-hakemisto pitää myös kopiota, ja kyseisen polun kirjaaminen käynnistystiedostoon on tapa, jolla kone pysyy päivityksen jälkeen kiinnitettynä vanhaan koontiversioon.

Etuliitteen symbolinen linkki on vakaa polku. Cellar-polku on toteutuksen yksityiskohta, jossa on versionumero.

Kysy Homebrew'lta, älä tiedostojärjestelmältä

Aloita paketinhallinnasta, koska se tietää, mikä asennus omistaa kaavan: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Jos viimeinen tulostaa polun, kaava on läsnä ja kysymys on puhtaasti ratkaisusta. Jos se ei tulosta mitään, tulkki etsii väärästä paikasta pakettia, jota ei koskaan asennettu, ja se on toinen ongelma, jolla on toinen korjaus.

Kaksi Homebrew-asennusta samalla koneella on se paikka, jossa tällä on eniten merkitystä: vastaava brew ei välttämättä ole se brew, joka asensi.

Miksi tulkki ei näe sbiniä

Kirjautumistulkki rakentaa PATHin järjestelmän oletuksista ja kaikesta, mitä käynnistystiedostosi lisäävät. Homebrew bin lisätään yleensä ja Homebrew sbin yleensä ei, joten jokainen komento toimii paitsi taustaohjelmat. command -v openvpn, joka ei palauta mitään, kun etuliitteellinen polku palauttaa version, on koko diagnoosi kahdessa komennossa. Vahvista, että hakemisto todella sisältää linkin komennolla ls -l "$(brew --prefix)/sbin/openvpn".

Puuttuva linkki on eri vika kuin puuttuva PATH-merkintä, ja vain toinen niistä korjataan muokkaamalla tulkin tiedostoa.

Korjaa polku kerran, yhdessä paikassa

Nopeaan testiin nykyisessä tulkissa eval "$(brew shellenv)" asettaa asennusmuuttujat ja lisää molemmat hakemistot eteen. Pysyvää järjestelyä varten laita shellenv-rivi siihen ainoaan käynnistystiedostoon, jonka tulkki lukee käyttämääsi kirjautumistilaa varten, sen sijaan että levität vientejä bash- ja zsh-tiedostoihin.

Avaa sitten uusi pääte ja toista versiokysely, koska välimuistiin jäänyt tulkki ilmoittaa edelleen vanhaa PATHia.

Pidä löytäminen erillään palvelusta

Binäärin löytäminen ei ole sama asia kuin VPN-palvelun ajaminen. Openvpnin käynnistäminen automaattisesti lisää profiilin, tunnistetietojen, oikeuksien ja elinkaaren vaatimukset, joihin paketin löytäminen ei koskaan koskenut. Tunnelblick tuo myös oman moottorinsa, joten juuri tulostamasi versiolla ei välttämättä ole mitään tekemistä sen version kanssa, jota sovellus käyttää.

Kirjaa, mikä suoritettava tiedosto tuotti versiotulosteen. Se yksi rivi säästää tunnin seuraavalla kerralla, kun kaksi versiota eroavat.

Aiheeseen liittyvät artikkelit