Инсталација се завршава, brew каже да је openvpn тамо, а шкољка одговара command not found. Бинарни фајл постоји, само се налази у директоријуму о коме шкољци никада није речено. Homebrew повезује бинарне фајлове типа демона у sbin директоријум префикса, а подразумевани macOS PATH обично укључује директоријум bin, а не sbin. Ништа није покварено и никакво поновно инсталирање то неће променити.

Четири провере потврђују механизам пре него што уредите било који фајл шкољке.

Шта формула заправо инсталира

Формула 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. Ако последњи испише путању, формула је присутна и питање је чисто о разрешавању. Ако не испише ништа, шкољка тражи на погрешном месту пакет који никада није био инсталиран, а то је други проблем са другим решењем.

Две инсталације Homebrew на једној машини је место где је ово најважније: brew који одговара није нужно brew који је инсталирао.

Зашто шкољка не види sbin

Пријавна шкољка гради PATH од системских подразумеваних вредности плус свега што додају ваше датотеке за покретање. Homebrew bin се обично додаје, а Homebrew sbin обично не, па свака команда ради осим демона. command -v openvpn који не враћа ништа, док путања са префиксом враћа верзију, је цела дијагноза у две команде. Потврдите да директоријум заиста садржи везу са ls -l "$(brew --prefix)/sbin/openvpn".

Веза која недостаје је друга врста квара од записа у PATH који недостаје, и само се једна од њих поправља уређивањем датотеке шкољке.

Поправите путању једном, на једном месту

За брзи тест у тренутној шкољци eval "$(brew shellenv)" поставља инсталационе променљиве и ставља оба директоријума напред. За трајно уређење ставите линију shellenv у једину датотеку за покретање коју ваша шкољка чита за режим пријаве који користите, уместо да разбацујете извозе по датотекама bash и zsh.

Затим отворите нови терминал и поновите упит о верзији, јер кеширана шкољка наставља да пријављује стари PATH.

Држите откривање одвојено од услуге

Пронаћи бинарни фајл није исто као покретати VPN услугу. Аутоматско покретање openvpn додаје захтеве за профил, акредитиве, привилегије и животни циклус којих се откривање пакета никада није дотакло. Tunnelblick такође доноси сопствени мотор, па верзија коју сте управо исписали можда нема никакве везе са верзијом коју апликација користи.

Запишите који је извршни фајл произвео излаз верзије. Тај један ред штеди сат времена следећи пут када се две верзије разиђу.

Повезани чланци