Homebrew ја става OpenVPN бинарната датотека во sbin, а не во вашиот PATH
Формулата го инсталира демонот OpenVPN под sbin, кој стандардниот macOS PATH не го вклучува. Потврдете го префиксот, потоа поправете го решението во една датотека.
Инсталацијата завршува, brew вели дека openvpn е таму, а shell-от одговара command not found. Бинарната датотека постои, само стои во директориум за кој на shell-от никогаш не му било кажано. Homebrew ги поврзува бинарните датотеки од типот демон во sbin директориумот на префиксот, а стандардниот macOS PATH обично го вклучува директориумот bin, а не sbin. Ништо не е расипано и никакво реинсталирање нема да го промени тоа.
Четири проверки го потврдуваат механизмот пред да уредите која било датотека на shell-от.
Што всушност инсталира формулата
Формулата openvpn гради демон за командна линија, па нејзината извршна датотека слетува под sbin наместо под bin. Потоа Homebrew ја поврзува таа бинарна датотека во sbin директориумот на префиксот и затоа "$(brew --prefix)/sbin/openvpn" --version работи, додека гол повик не работи. Верзионираниот директориум Cellar исто така чува копија, а ставањето на таа патека во датотека за стартување е начинот на кој машината останува прикачена на стара изградба по надградбата.
Симболичката врска на префиксот е стабилната патека. Патеката во Cellar е детаљ од имплементацијата со број на верзија во неа.
Прашајте го Homebrew, а не датотечниот систем
Започнете со менаџерот на пакети, бидејќи тој знае која инсталација ја поседува формулата: command -v brew, brew --prefix, brew list --versions openvpn, brew --prefix openvpn. Ако последниот отпечати патека, формулата е присутна и прашањето е чисто за решение. Ако не отпечати ништо, shell-от бара на погрешно место пакет што никогаш не бил инсталиран, а тоа е друг проблем со друго решение.
Две инсталации на Homebrew на една машина е местото каде што ова е најважно: brew што одговара не е нужно brew што инсталирал.
Зошто shell-от не може да го види sbin
Пријавниот shell гради PATH од системските стандарди плус сѐ што додаваат вашите датотеки за стартување. Homebrew bin обично се додава, а Homebrew sbin обично не, па секоја команда работи освен демоните. command -v openvpn што не враќа ништо, додека патеката со префикс враќа верзија, е целата дијагноза во две команди. Потврдете дека директориумот навистина ја содржи врската со ls -l "$(brew --prefix)/sbin/openvpn".
Врската што недостасува е друг дефект од записот во PATH што недостасува и само еден од нив се поправа со уредување на датотека на shell-от.
Поправете ја патеката еднаш, на едно место
За брз тест во тековниот shell, eval "$(brew shellenv)" ги поставува променливите за инсталација и ги става двата директориуми напред. За трајно уредување, ставете ја линијата shellenv во единствената датотека за стартување што вашиот shell ја чита за режимот на пријавување што го користите, наместо да ги расфрлате извозите по датотеките на bash и zsh.
Потоа отворете нов терминал и повторете го прашањето за верзијата, бидејќи кешираниот shell сѐ уште ја пријавува старата PATH.
Држете го откривањето одвоено од услугата
Да се најде бинарна датотека не е исто како да се води VPN услуга. Автоматското стартување на openvpn додава барања за профил, акредитиви, привилегии и животен циклус што откривањето на пакети никогаш не ги допрело. Tunnelblick исто така носи сопствен двигател, па верзијата што штотуку ја отпечативте може да нема никаква врска со верзијата што ја користи апликацијата.
Запишете која извршна датотека го произведе излезот за верзијата. Таа една линија штеди еден час следниот пат кога две верзии ќе се разидат.