permissions - मैक ओएस एक्स 10.13 हाई सिएरा में होमब्रेव के लिए चॉइस/यूएसआर/लोकल नहीं कर सकते




homebrew (8)

Homebrew / usr / स्थानीय में अनुमतियों की आवश्यकता होती है और चूंकि कोई भी मेरे लैपटॉप का उपयोग नहीं करता है, मैंने हमेशा बस किया है

sudo chown -R $(whoami) $(brew --prefix)

लेकिन उच्च सिएरा में, यह देता है

chown: /usr/local: Operation not permitted

क्या है फिक्स?


आप स्वयं के लिए /usr/local लिए अनुमति नहीं बदल सकते हैं, लेकिन आप नीचे दिए गए फ़ोल्डरों के लिए सही अनुमति को बदल सकते हैं, इसलिए यह निर्धारित है
sudo chown -R $(whoami) /usr/local/*


दुर्भाग्य से आप हाई सिएरा में अब चाउ /usr/local नहीं रह सकते हैं। एक वैकल्पिक हल sudo mkdir /usr/local/include और /usr/local/Frameworks यदि वे मौजूद हैं, और

sudo chown -R $(whoami) $(brew --prefix)/*

इस सरल समाधान के लिए और अद्भुत होमब्रेव के लिए ilovezfs का धन्यवाद!



मैंने इसका पालन किया लेकिन समस्या अभी भी बनी हुई है।
इसलिए, मैंने पिछले एक की स्थापना रद्द किए बिना होमब्रेव को फिर से इंस्टॉल किया। अब यह काम कर रहा है!
(मुझे नहीं पता कैसे)


समस्या अभी भी नवीनतम MacOS यानी Mojave में बनी हुई है। Homebrew को अनइंस्टॉल करने और पुन: स्थापित करने से निर्देशिका अनुमति समस्या का समाधान नहीं होता है। वास्तव में यह होमब्रेव स्थापना से संबंधित नहीं है!

जब हम brew install python करते हैं तो यह केवल ब्रू पीथन को डालता है और फिर / usr / लोकल डायर के तहत प्रतीकात्मक लिंक बनाने की कोशिश करता है जिसके लिए ब्रू की अनुमति नहीं होती है। और जब हम sudo chown -R $(whoami) /usr/local को निष्पादित करने का प्रयास करते हैं तो यह काम नहीं करता है क्योंकि इसके लिए अतिरिक्त विशेषाधिकार की आवश्यकता होती है जो सामान्य मैक उपयोगकर्ताओं (अर्थात आपका उपयोगकर्ता नाम) के पास नहीं है। लेकिन जैसा कि @Reza ने अपने answer में उल्लेख किया है कि किसी भी निर्देशिका की अनुमति को बदला जा सकता है। केवल निम्नलिखित आदेश जारी करें:

sudo chown -R $(whoami) /usr/local/*

समस्या बनी रही ... गहरी खुदाई करने के बाद मैंने पाया कि केवल होमब्रे को अनइंस्टॉल करना और फिर इसे फिर से स्थापित करना इस मुद्दे को हल करता है।

स्थापना रद्द करें

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

फिर इसे फिर से स्थापित करें:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


सिस्टम इंटीग्रिटी प्रोटेक्शन को अक्षम करने का प्रयास करें। प्रलेखन से:

सिस्टम इंटीग्रिटी प्रोटेक्शन को csrutil (1) कमांड का उपयोग करके कॉन्फ़िगर किया जा सकता है।

आप देख सकते हैं कि वर्तमान में टर्मिनल में निम्नलिखित कमांड चलाकर सिस्टम इंटीग्रिटी प्रोटेक्शन आपके सिस्टम पर सक्षम है या नहीं:

$ csrutil status
System Integrity Protection status: enabled.

सिस्टम इंटीग्रिटी प्रोटेक्शन को सक्षम या अक्षम करने के लिए, आपको रिकवरी ओएस को बूट करना होगा और टर्मिनल से सीएसआरुटिल (1) कमांड चलाना होगा।

रिकवरी ओएस को बूट करें अपनी मशीन को पुनरारंभ करके और स्टार्टअप पर कमांड और आर कुंजी दबाए रखें। यूटिलिटीज मेनू से टर्मिनल लॉन्च करें। निम्न कमांड दर्ज करें: $ csrutil enable

किसी मशीन पर सिस्टम इंटीग्रिटी प्रोटेक्शन को सक्षम या अक्षम करने के बाद, रिबूट की आवश्यकता होती है।