A Homebrew az OpenVPN binárist az sbin mappába teszi, nem a PATH-ba
A formula az OpenVPN démont az sbin alá telepíti, amelyet az alapértelmezett macOS PATH nem tartalmaz. Ellenőrizze az előtagot, majd javítsa a feloldást egyetlen fájlban.
A telepítés befejeződik, a brew azt mondja, hogy az openvpn ott van, a héj mégis command not found üzenettel válaszol. A bináris létezik, csak olyan könyvtárban ül, amelyről a héjnak soha nem szóltak. A Homebrew a démon jellegű binárisokat az előtag sbin könyvtárába linkeli, az alapértelmezett macOS PATH pedig általában a bin könyvtárat tartalmazza, az sbin könyvtárat nem. Semmi nem tört el, és egyetlen újratelepítés sem változtat ezen.
Négy ellenőrzés igazolja a mechanizmust, mielőtt bármelyik héjfájlhoz hozzányúlna.
Mit telepít valójában a formula
Az openvpn formula egy parancssori démont épít, ezért a futtatható fájlja a bin helyett az sbin alá kerül. A Homebrew ezután azt a binárist az előtag sbin könyvtárába linkeli, és ezért működik a "$(brew --prefix)/sbin/openvpn" --version, míg egy csupasz hívás nem. A verziószámozott Cellar könyvtár is tart egy másolatot, és ennek az útvonalnak a indítási fájlba írása az a mód, ahogy egy gép a frissítés után egy régi buildhez rögzítve marad.
Az előtag szimbolikus linkje a stabil útvonal. A Cellar útvonal egy megvalósítási részlet, amelyben verziószám van.
A Homebrew-t kérdezze, ne a fájlrendszert
Kezdje a csomagkezelővel, mert az tudja, melyik telepítés birtokolja a formulát: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Ha az utolsó útvonalat ír ki, a formula jelen van, és a kérdés kizárólag a feloldásról szól. Ha semmit nem ír ki, a héj a rossz helyen keres egy soha nem telepített csomagot, és az másik probléma, másik javítással.
Két Homebrew telepítés egy gépen az a hely, ahol ez a leginkább számít: a válaszoló brew nem feltétlenül az, amelyik telepített.
Miért nem látja a héj az sbin mappát
A bejelentkezési héj a rendszer alapértelmezéseiből és a indítási fájlok által hozzáadottakból építi fel a PATH-t. A Homebrew bin általában hozzáadódik, a Homebrew sbin pedig általában nem, ezért a démonok kivételével minden parancs működik. Az, hogy a command -v openvpn semmit nem ad vissza, míg az előtagos útvonal verziót ad vissza, a teljes diagnózis két parancsban. Erősítse meg, hogy a könyvtár valóban tartalmazza a linket a ls -l "$(brew --prefix)/sbin/openvpn" használatával.
A hiányzó link más hiba, mint a hiányzó PATH-bejegyzés, és közülük csak az egyiket javítja egy héjfájl szerkesztése.
Javítsa az útvonalat egyszer, egy helyen
Gyors teszthez az aktuális héjban a eval "$(brew shellenv)" beállítja a telepítési változókat, és mindkét könyvtárat előre teszi. Állandó elrendezéshez tegye a shellenv sort abba az egyetlen indítási fájlba, amelyet a héja a használt bejelentkezési módhoz olvas, ahelyett hogy az exportokat bash és zsh fájlok között szórná szét.
Ezután nyisson új terminált, és ismételje meg a verziólekérdezést, mert a gyorsítótárazott héj továbbra is a régi PATH-t jelenti.
Tartsa külön a felderítést a szolgáltatástól
Egy bináris megtalálása nem ugyanaz, mint egy VPN szolgáltatás futtatása. Az openvpn automatikus indítása olyan profil-, hitelesítőadat-, jogosultság- és életciklus-követelményeket ad hozzá, amelyekhez a csomagfelderítés soha nem nyúlt. A Tunnelblick a saját motorját is magával hozza, ezért az imént kiírt verzióhoz semmi köze sem lehet ahhoz a verzióhoz, amelyet az alkalmazás használ.
Jegyezze fel, melyik futtatható fájl állította elő a verziókimenetet. Az az egy sor egy órát spórol, amikor legközelebb két verzió eltér.