Homebrew OpenVPN ബൈനറി PATH-ൽ അല്ല, sbin-ൽ ഇടുന്നു
ഫോർമുല OpenVPN ഡീമൺ sbin-ന് കീഴിൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നു, അത് സ്വതേയുള്ള macOS PATH-ൽ ഉൾപ്പെടുന്നില്ല. പ്രിഫിക്സ് സ്ഥിരീകരിച്ച്, പിന്നെ ഒരു ഫയലിൽ പരിഹാരം ശരിയാക്കുക.
ഇൻസ്റ്റാൾ അവസാനിക്കുന്നു, brew openvpn ഉണ്ടെന്ന് പറയുന്നു, എന്നാൽ ഷെൽ command not found എന്ന് മറുപടി നൽകുന്നു. ബൈനറി ഉണ്ട്, ഷെല്ലിനോട് ഒരിക്കലും പറയാത്ത ഒരു ഡയറക്ടറിയിലാണ് അത് ഇരിക്കുന്നത്. Homebrew ഡീമൺ ശൈലിയിലുള്ള ബൈനറികളെ പ്രിഫിക്സിന്റെ sbin ഡയറക്ടറിയിലേക്ക് ലിങ്ക് ചെയ്യുന്നു, സ്വതേയുള്ള macOS PATH സാധാരണയായി bin ഡയറക്ടറി ഉൾപ്പെടുത്തുന്നു, sbin അല്ല. ഒന്നും തകർന്നിട്ടില്ല, ഒരു പുനരിൻസ്റ്റാളും അത് മാറ്റില്ല.
ഏതെങ്കിലും ഷെൽ ഫയൽ തിരുത്തുന്നതിന് മുമ്പ് നാല് പരിശോധനകൾ ഈ സംവിധാനം സ്ഥിരീകരിക്കുന്നു.
ഫോർമുല യഥാർത്ഥത്തിൽ എന്താണ് ഇൻസ്റ്റാൾ ചെയ്യുന്നത്
openvpn ഫോർമുല ഒരു കമാൻഡ് ലൈൻ ഡീമൺ നിർമ്മിക്കുന്നു, അതിനാൽ അതിന്റെ എക്സിക്യൂട്ടബിൾ bin-ന് പകരം sbin-ന് കീഴിൽ എത്തുന്നു. തുടർന്ന് 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 സ്വന്തം എഞ്ചിനും ഒപ്പം കൊണ്ടുവരുന്നു, അതിനാൽ ഇപ്പോൾ പ്രിന്റ് ചെയ്ത പതിപ്പിന് ആപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന പതിപ്പുമായി യാതൊരു ബന്ധവുമില്ലായിരിക്കാം.
ഏത് എക്സിക്യൂട്ടബിളാണ് പതിപ്പ് ഔട്ട്പുട്ട് നിർമ്മിച്ചതെന്ന് രേഖപ്പെടുത്തുക. ആ ഒരു വരി അടുത്ത തവണ രണ്ട് പതിപ്പുകൾ യോജിക്കാതിരിക്കുമ്പോൾ ഒരു മണിക്കൂർ ലാഭിക്കുന്നു.