Paigaldus lõpeb, brew ütleb, et openvpn on olemas, aga kest vastab command not found. Binaar on olemas, see asub kataloogis, millest kestale ei ole kunagi räägitud. Homebrew linkis deemonilaadsed binaarid prefiksi sbin-kataloogi ja macOS-i vaikimisi PATH sisaldab tavaliselt bin-kataloogi, mitte sbin-kataloogi. Miski ei ole katki ja ükski uuesti paigaldus ei muuda seda.

Neli kontrolli kinnitavad mehhanismi enne, kui muudad ükskõik millist kesta faili.

Mida valem tegelikult paigaldab

Valem openvpn ehitab käsurea deemon, seega maandub selle käivitatav fail sbin-i alla, mitte bin-i alla. Seejärel linkib Homebrew selle binaari prefiksi sbin-kataloogi ja seepärast töötab "$(brew --prefix)/sbin/openvpn" --version, samas kui paljas kutse ei tööta. Versiooniga Cellar-kataloog hoiab samuti koopiat ja selle tee panemine käivitusfaili on viis, kuidas masin jääb pärast uuendust vana buildi külge kinni.

Prefiksi sümboolne link on stabiilne tee. Cellar-i tee on teostuse detail, mille sees on versiooninumber.

Küsi Homebrew-lt, mitte failisüsteemilt

Alusta paketihaldurist, sest tema teab, milline paigaldus valemit omab: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Kui viimane prindib tee, on valem olemas ja küsimus on ainult lahendamises. Kui see ei prindi midagi, otsib kest valest kohast paketti, mida ei ole kunagi paigaldatud, ja see on teine probleem teise lahendusega.

Kaks Homebrew paigaldust ühes masinas on koht, kus see kõige rohkem loeb: vastav brew ei ole tingimata see brew, mis paigaldas.

Miks kest ei näe sbin-i

Sisselogimise kest ehitab PATH-i süsteemi vaikeväärtustest pluss kõigest, mida sinu käivitusfailid lisavad. Homebrew bin lisatakse tavaliselt ja Homebrew sbin tavaliselt mitte, seega töötab iga käsk peale deemonite. command -v openvpn, mis ei tagasta midagi, samal ajal kui prefiksiga tee tagastab versiooni, on kogu diagnoos kahes käsus. Kinnita, et kataloog tõesti hoiab linki, käsuga ls -l "$(brew --prefix)/sbin/openvpn".

Puuduv link on erinev rike kui puuduv PATH-kirje ja neist ainult ühte parandab kesta faili muutmine.

Paranda tee üks kord, ühes kohas

Kiireks testiks praeguses kestas seab eval "$(brew shellenv)" paigaldusmuutujad ja paneb mõlemad kataloogid ette. Püsiva korralduse jaoks pane shellenv-rida ainsasse käivitusfaili, mida sinu kest loeb selle sisselogimisrežiimi jaoks, mida kasutad, selle asemel et puistata ekspordid laiali bash- ja zsh-failide vahel.

Seejärel ava uus terminal ja korda versioonipäringut, sest vahemällu jäänud kest jätkab vana PATH-i teatamist.

Hoia avastamine teenusest eraldi

Binaari leidmine ei ole sama mis VPN-teenuse käitamine. Openvpn-i automaatne käivitamine lisab profiili, volituste, õiguste ja elutsükli nõuded, mida paketiavastus ei ole kunagi puudutanud. Tunnelblick toob kaasa ka oma mootori, seega äsja prinditud versioonil ei pruugi olla midagi pistmist versiooniga, mida rakendus kasutab.

Pane kirja, milline käivitatav fail versiooniväljundi tekitas. See üks rida säästab tunni järgmisel korral, kui kaks versiooni lahknevad.

Seotud artiklid