Homebrew e vendos binarin e OpenVPN në sbin, jo në PATH-in tuaj
Formula instalon daemonin e OpenVPN nën sbin, të cilin një PATH i parazgjedhur i macOS nuk e përfshin. Konfirmo prefiksin dhe më pas rregullo zgjidhjen në një skedar.
Instalimi përfundon, brew thotë se openvpn është aty, dhe shell-i përgjigjet command not found. Binari ekziston, thjesht ndodhet në një direktori për të cilën shell-it nuk i është thënë kurrë. Homebrew lidh binarët e stilit daemon në direktorinë sbin të prefiksit, dhe një PATH i parazgjedhur i macOS zakonisht përfshin direktorinë bin dhe jo atë sbin. Asgjë nuk është prishur, dhe asnjë riinstalim nuk do ta ndryshojë këtë.
Katër kontrolle konfirmojnë mekanizmin përpara se të modifikoni çdo skedar të shell-it.
Çfarë instalon në të vërtetë formula
Formula openvpn ndërton një daemon të rreshtit të komandës, kështu që skedari i saj ekzekutues përfundon nën sbin dhe jo nën bin. Më pas Homebrew e lidh atë binar në direktorinë sbin të prefiksit, dhe për këtë arsye "$(brew --prefix)/sbin/openvpn" --version funksionon ndërsa një thirrje e thjeshtë nuk funksionon. Direktoria Cellar me version mban gjithashtu një kopje, dhe vendosja e asaj rruge në një skedar nisjeje është mënyra se si një makinë mbetet e lidhur me një ndërtim të vjetër pas një përditësimi.
Lidhja simbolike e prefiksit është rruga e qëndrueshme. Rruga e Cellar është një detaj implementimi me një numër versioni brenda.
Pyet Homebrew, jo sistemin e skedarëve
Filloni me menaxherin e paketave, sepse ai e di se cili instalim zotëron formulën: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Nëse i fundit printon një rrugë, formula është e pranishme dhe pyetja është vetëm për zgjidhjen. Nëse nuk printon asgjë, shell-i po kërkon në vendin e gabuar një paketë që nuk u instalua kurrë, dhe ky është një problem tjetër me një zgjidhje tjetër.
Dy instalime të Homebrew në një makinë është vendi ku kjo ka më shumë rëndësi: brew që përgjigjet nuk është domosdoshmërisht brew që instaloi.
Pse shell-i nuk e sheh sbin
Një shell hyrjeje ndërton PATH nga parazgjedhjet e sistemit plus gjithçka që shtojnë skedarët tuaj të nisjes. Homebrew bin zakonisht shtohet dhe Homebrew sbin zakonisht jo, kështu që çdo komandë funksionon përveç daemonëve. command -v openvpn që nuk kthen asgjë ndërsa rruga me prefiks kthen një version është i gjithë diagnoza në dy komanda. Konfirmo që direktoria vërtet e mban lidhjen me ls -l "$(brew --prefix)/sbin/openvpn".
Një lidhje që mungon është një defekt tjetër nga një zë PATH që mungon, dhe vetëm njëra prej tyre rregullohet duke modifikuar një skedar të shell-it.
Rregullo rrugën një herë, në një vend
Për një provë të shpejtë në shell-in aktual, eval "$(brew shellenv)" vendos variablat e instalimit dhe i vë të dyja direktoritë përpara. Për një rregullim të përhershëm, vendos rreshtin shellenv në skedarin e vetëm të nisjes që shell-i yt lexon për mënyrën e hyrjes që përdor, në vend që të shpërndash eksportet nëpër skedarët bash dhe zsh.
Më pas hap një terminal të ri dhe përsërit pyetjen e versionit, sepse një shell i ruajtur në cache vazhdon të raportojë PATH-in e vjetër.
Mbaje zbulimin të ndarë nga shërbimi
Të gjesh një binar nuk është e njëjta gjë me drejtimin e një shërbimi VPN. Nisja automatike e openvpn shton kërkesa për profil, kredenciale, privilegje dhe cikël jetësor që zbulimi i paketave nuk i ka prekur kurrë. Tunnelblick sjell gjithashtu motorin e vet, kështu që versioni që sapo printuat mund të mos ketë asnjë lidhje me versionin që përdor aplikacioni.
Regjistro cili ekzekutues prodhoi daljen e versionit. Ai rresht i vetëm kursen një orë herën tjetër kur dy versione nuk bien dakord.