Homebrew stavlja OpenVPN binarnu datoteku u sbin, a ne u vaš PATH
Formula instalira OpenVPN daemon u sbin, koju zadani macOS PATH ne uključuje. Provjerite prefiks, zatim popravite razrješavanje u jednoj datoteci.
Instalacija završava, brew kaže da je openvpn tu, a ljuska odgovara command not found. Binarna datoteka postoji, samo se nalazi u direktoriju o kojem ljusci nikada nije rečeno. Homebrew povezuje binarne datoteke u stilu daemona u sbin direktorij prefiksa, a zadani macOS PATH obično uključuje direktorij bin, ali ne sbin. Ništa nije pokvareno i nikakva ponovna instalacija to neće promijeniti.
Četiri provjere potvrđuju mehanizam prije nego što uredite bilo koju datoteku ljuske.
Što formula zapravo instalira
Formula openvpn gradi daemon naredbenog retka, pa njezina izvršna datoteka završava pod sbin umjesto pod bin. Homebrew zatim povezuje tu binarnu datoteku u sbin direktorij prefiksa i zato "$(brew --prefix)/sbin/openvpn" --version radi, dok goli poziv ne radi. Verzionirani Cellar direktorij također drži kopiju, a stavljanje tog puta u datoteku za pokretanje je način na koji stroj ostaje vezan uz staru gradnju nakon nadogradnje.
Simbolička veza prefiksa stabilan je put. Put u Cellaru implementacijski je detalj s brojem verzije u sebi.
Pitajte Homebrew, a ne datotečni sustav
Počnite s upraviteljem paketa jer on zna koja instalacija posjeduje formulu: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Ako posljednja ispiše put, formula je prisutna i pitanje je isključivo o razrješavanju. Ako ne ispiše ništa, ljuska traži na pogrešnom mjestu paket koji nikada nije instaliran, a to je drugi problem s drugim rješenjem.
Dvije Homebrew instalacije na jednom stroju mjesto su gdje je to najvažnije: brew koji odgovara nije nužno brew koji je instalirao.
Zašto ljuska ne vidi sbin
Prijavna ljuska gradi PATH iz sistemskih zadanih vrijednosti plus svega što dodaju vaše datoteke za pokretanje. Homebrew bin obično se dodaje, a Homebrew sbin obično ne, pa svaka naredba radi osim daemona. command -v openvpn koji ne vraća ništa, dok put s prefiksom vraća verziju, cijela je dijagnoza u dvije naredbe. Potvrdite da direktorij doista drži vezu s ls -l "$(brew --prefix)/sbin/openvpn".
Veza koja nedostaje drugi je kvar od unosa u PATH koji nedostaje i samo se jedan od njih popravlja uređivanjem datoteke ljuske.
Popravite put jednom, na jednom mjestu
Za brzu provjeru u trenutnoj ljusci eval "$(brew shellenv)" postavlja varijable instalacije i stavlja oba direktorija na početak. Za trajno uređenje stavite redak shellenv u jedinu datoteku za pokretanje koju vaša ljuska čita za način prijave koji koristite, umjesto da rasipate izvoz po datotekama bash i zsh.
Zatim otvorite novi terminal i ponovite upit o verziji jer predmemorirana ljuska nastavlja prijavljivati stari PATH.
Držite otkrivanje odvojeno od usluge
Pronalaženje binarne datoteke nije isto što i pokretanje VPN usluge. Automatsko pokretanje openvpn dodaje zahtjeve za profil, vjerodajnice, ovlasti i životni ciklus kojih se otkrivanje paketa nikada nije dotaknulo. Tunnelblick također nosi vlastiti mehanizam, pa verzija koju ste upravo ispisali možda nema nikakve veze s verzijom koju aplikacija koristi.
Zabilježite koja je izvršna datoteka proizvela izlaz verzije. Taj jedan redak štedi sat sljedeći put kada se dvije verzije razilaze.