ઇન્સ્ટોલ પૂરું થાય છે, 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 પોતાનું એન્જિન પણ સાથે લાવે છે, તેથી હમણાં છાપેલા વર્ઝનનો એપ્લિકેશન જે વર્ઝન વાપરે છે તેની સાથે કોઈ સંબંધ ન પણ હોય.

કઈ એક્ઝિક્યુટેબલે વર્ઝન આઉટપુટ બનાવ્યું તે નોંધો. તે એક લાઇન આગલી વાર બે વર્ઝન અસહમત થાય ત્યારે એક કલાક બચાવે છે.

સંબંધિત લેખો