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 स्वतःचे इंजिनही सोबत आणते, त्यामुळे नुकतेच छापलेल्या आवृत्तीचा ॲप्लिकेशन वापरत असलेल्या आवृत्तीशी काहीही संबंध नसू शकतो.
कोणत्या एक्झिक्युटेबलने आवृत्तीचे आउटपुट तयार केले ते नोंदवा. ती एक ओळ पुढच्या वेळी दोन आवृत्त्या जुळल्या नाहीत तेव्हा एक तास वाचवते.