Installasjonen blir ferdig, brew seier at openvpn er der, og skalet svarar command not found. Binærfila finst, ho ligg berre i ein mappe som skalet aldri fekk vite om. Homebrew lenkjer tenar-liknande binærfiler inn i sbin-mappa til prefikset, og ein standard macOS-PATH inneheld vanlegvis bin-mappa og ikkje sbin-mappa. Ingenting er øydelagt, og ingen reinstallasjon vil endre det.

Fire kontrollar stadfester mekanismen før du redigerer noka skal-fil.

Kva formelen faktisk installerer

Openvpn-formelen byggjer ein tenar for kommandolinja, så den køyrbare fila hamnar under sbin i staden for bin. Homebrew lenkjer deretter binærfila inn i sbin-mappa til prefikset, og difor verkar "$(brew --prefix)/sbin/openvpn" --version medan eit bart kall ikkje gjer det. Den versjonerte Cellar-mappa held også ei kopi, og å setje den stien i ei oppstartsfil er måten ein maskin blir ståande låst til eit gammalt bygg etter ei oppgradering.

Symlenkja til prefikset er den stabile stien. Cellar-stien er ein implementasjonsdetalj med eit versjonsnummer i seg.

Spør Homebrew, ikkje filsystemet

Start med pakkehandsamaren, fordi han veit kva installasjon som eig formelen: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Viss den siste skriv ut ein sti, er formelen til stades, og spørsmålet gjeld berre oppslaget. Viss han ikkje skriv ut noko, leitar skalet på feil stad etter ein pakke som aldri vart installert, og det er eit anna problem med ei anna løysing.

To Homebrew-installasjonar på éi maskin er der dette betyr mest: brew-en som svarar er ikkje nødvendigvis brew-en som installerte.

Kvifor skalet ikkje ser sbin

Eit innloggingsskal byggjer PATH frå systemstandardane pluss alt oppstartsfilene dine legg til. Homebrew bin blir vanlegvis lagt til og Homebrew sbin vanlegvis ikkje, så kvar kommando verkar bortsett frå tenarane. command -v openvpn som ikkje returnerer noko, medan stien med prefiks returnerer ein versjon, er heile diagnosen i to kommandoar. Stadfest at mappa verkeleg held lenkja med ls -l "$(brew --prefix)/sbin/openvpn".

Ei manglande lenkje er ein annan feil enn ei manglande PATH-oppføring, og berre éi av dei blir retta ved å redigere ei skal-fil.

Rett stien éin gong, på éin stad

For ein rask test i gjeldande skal set eval "$(brew shellenv)" installasjonsvariablane og set båe mappene først. For ei varig ordning legg du shellenv-linja i den eine oppstartsfila skalet ditt les for innloggingsmodusen du brukar, i staden for å spreie eksportar utover bash- og zsh-filer.

Opne så eit nytt terminalvindauge og gjenta versjonsspørjinga, fordi eit bufra skal held fram med å rapportere den gamle PATH-en.

Hald oppdaginga skild frå tenesta

Å finne ei binærfil er ikkje det same som å køyre ein VPN-teneste. Å starte openvpn automatisk legg til krav til profil, legitimasjon, rettar og livssyklus som pakkeoppdaginga aldri har rørt. Tunnelblick har også sin eigen motor, så versjonen du nettopp skreiv ut har kanskje ingenting å gjere med versjonen programmet brukar.

Noter kva køyrbar fil som produserte versjonsutskrifta. Den eine linja sparer ein time neste gong to versjonar er usamde.

Relaterte artiklar