Homebrew: सहानुभूति नहीं कर सकता, / usr / स्थानीय / बिन लिखने योग्य नहीं है [बंद]


361

स्थापित करते समय tig, HomeBrewनिर्भरता स्थापित करते समय निम्नलिखित मुद्दों को प्रदर्शित कर रहा है:

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.

You can try again using:
  brew link asciidoc

3
यह stackowerflow.com, बल्कि superuser.com या askdifferent.com से संबंधित नहीं है
Ondra'ižka

जवाबों:


582

एलेक्स के जवाब के बाद मैं इस मुद्दे को हल करने में सक्षम था; ऐसा लगता है कि स्थापित किए जा रहे पैकेज के लिए गैर विशिष्ट है, लेकिन homebrewफ़ोल्डर्स की अनुमति के बिना ।

sudo chown -R `whoami`:admin /usr/local/bin

कुछ संकुल के लिए, आप भी करने के लिए यह करने के लिए आवश्यकता हो सकती है /usr/local/shareया /usr/local/opt:

sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt

25
वर्तमान उपयोग के लिए सभी / usr / लोकल / बिन को री-यूज नहीं करने से सिस्टम या अन्य उपयोगकर्ताओं को कोई परेशानी होती है?
डॉन गिउलिओ

10
नहीं चाहेंगे sudo chown -R Whoami :admin /usr/local/binजवाब में आदेश के बराबर हो, को बदलने के लिए की आवश्यकता के बिना yourusenameअपने वास्तविक उपयोगकर्ता नाम के साथ?
जेसन स्विट

5
मुझे भी दुबारा चांस लेना पड़ा usr/local/opt। इसके बाद काम किया।
atripes

5
पर मेरी मैक (10.9.5) की अनुमति /usr/local/bin(और दोस्तों) पर वापस लौटने के लग रहे हैं drwxr-xr-x+और root wheelहर दिन। मुझे हर बार उन परमिटों को फिर से कॉन्फ़िगर करना होगा जो मैं चाहता हूं brew install। मुझे लगता है कि ओएस मुझे बचाने के लिए परमिट रीसेट कर रहा है? मैं इसे कैसे रोक सकता हूं? (मैंने कोशिश की है, chflags uchg …लेकिन काढ़ा को स्थापित करने से रोकता है।)
क्विन कॉमेंडेंट

1
मैंने अपना खाता "पहिया" समूह में जोड़ा। यह मुझे "sudo chmod -R g + w / usr / लोकल" की अनुमति देता है - यह समूह "व्हील" के सदस्यों को फ़ोल्डरों को लिखने की अनुमति देता है। इन संवेदनशील फ़ोल्डरों के स्वामी को जड़ से कम सुरक्षित खाते में बदलने से अधिक सुरक्षित लगता है।
माइकल क्रेब्स

220

किसी विशेष आदेश को चलाने के बजाय, मैं brew doctorसभी चेतावनियों को गंभीरता से चलाने और लेने की सलाह दूंगा। ऐसी अन्य समस्याएं भी हो सकती हैं, जिन पर आप अटक सकते हैं, जो इस प्रश्न पर कब्जा नहीं कर सकते हैं।

इसके अलावा, जैसा कि काढ़ा समय के साथ अपडेट हो जाता है, विशेष आदेश मान्य हो सकते हैं या नहीं भी रह सकते हैं। brew doctorहालाँकि, यह सुनिश्चित करेगा कि आप समस्या निवारण के लिए उठें।


9
मुझे विश्वास नहीं हो रहा है कि आपका उत्तर कम लोकप्रिय है। यह निश्चित रूप से ऊपर व्यक्त अनुमान से अधिक विवेकपूर्ण है।
रॉबर्ट का फेयरफैक्स

34
brew doctorसमस्या को ठीक नहीं करेंगे, यह केवल आपको इसके बारे में बताएगा, और जब आप डॉक्टर की सलाह लेते हैं, तो ब्रू कहते हैं कि यह ऐसा नहीं कर सकता। यह एक समाधान नहीं है
कीथ टायलर

8
शायद किसी ने इसमें सुधार किया। अब काढ़ा डॉक्टर सुझाव देते हैं कि मैं सबसे लोकप्रिय उत्तर के लिए एक समान cmd चलाता हूं, और ऐसा करने के बाद काढ़ा सिमलिंक काम करता है। मैं एक मैक पर हूं, इसलिए हम देखेंगे कि यह कितने समय तक चलता है। :-)
जोशुआ रिचर्डसन

2
यह बहुत उपयोगी धन्यवाद था। उपरोक्त सुझाव को याद करने के लिए कुछ अन्य विशेष निर्देशिकाओं को तय किया।
स्विमबाइकआर

6
काढ़ा चिकित्सक ने सटीक समस्या प्रदान की और मैनुअल समाधान भी प्रदान किया!
नेटेक्स

74

अन्य उत्तर सही हैं, जहां तक ​​वे जाते हैं, लेकिन वे इस बात का जवाब नहीं देते हैं कि यह समस्या क्यों हो सकती है, और उस मूल कारण को कैसे संबोधित किया जाए।

कारण

इस समस्या के दो संभावित कारण हैं:

  1. होमब्रेव इंस्टॉलेशन उस उपयोगकर्ता के साथ किया गया था जिसे आप वर्तमान में उपयोग कर रहे हैं। Homebrew को उम्मीद है कि केवल मूल रूप से इसे स्थापित करने वाला उपयोगकर्ता ही इसका उपयोग करना चाहेगा।
  2. आपने कुछ सॉफ़्टवेयर स्थापित किए हैं जो काढ़ा का उपयोग किए बिना / usr / स्थानीय को लिखते हैं। brew doctorयदि आप इसे चलाते हैं तो यही कारण है।

समाधान

मल्टीयूज़र होमब्रे

यदि आपके पास कई उपयोगकर्ता खाते हैं, और आप चाहते हैं कि उनमें से एक से अधिक का उपयोग करने में सक्षम हो, तो आपको कुछ चरणों के माध्यम से चलाने की आवश्यकता है, अन्यथा आपको उपयोगकर्ताओं को स्विच करने पर हर बार होमब्रे फ़ाइल संरचना के स्वामित्व को बदलना होगा, और यह एक महान विचार नहीं है।

विस्तृत निर्देश ऑनलाइन पाया जा सकता है , लेकिन त्वरित उत्तर यह है:

  1. एक समूह बनाएं जिसका नाम है काढ़ा:

    1. सिस्टम प्राथमिकताएँ खोलें
    2. खाते पर क्लिक करें
    3. "+" पर क्लिक करें (यदि आवश्यक हो तो पहले अनलॉक करें)
    4. नए खाते के अंतर्गत समूह चुनें
    5. काढ़ा डालें
    6. समूह बनाएं पर क्लिक करें
  2. काढ़ा समूह का चयन करें , और उस उपयोगकर्ता खाते को जोड़ें जो आप इसे काढ़ा करना चाहते हैं।
  3. / usr / स्थानीय फ़ोल्डर समूह स्वामित्व बदलें: sudo chgrp -R brew /usr/local
  4. समूह के रूप में / usr / स्थानीय को लिखने को जोड़ने के लिए अनुमतियाँ बदलें: sudo chmod -R g+w /usr/local
  5. होमब्रेव कैश निर्देशिका समूह बदलें: sudo chgrp -R brew /Library/Caches/Homebrew
  6. होमब्रेव कैश निर्देशिका अनुमतियाँ बदलें: sudo chmod -R g+w /Library/Caches/Homebrew

एकल उपयोगकर्ता होमब्रे

यदि आप Homebrew के साथ एक से अधिक उपयोगकर्ता का उपयोग करने का प्रयास नहीं कर रहे हैं, तो अन्य उत्तरों द्वारा प्रदान किया गया समाधान, brew doctorसंभवतः के सुझावों पर आधारित है:

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

sudo chown -R $(whoami) /Library/Caches/Homebrew

सत्यापन

इन चरणों के बाद, नए समूह सदस्यता (यदि आप बहुउद्देश्यीय मार्ग चला गया) को लागू करने के लिए, आपने लॉग इन किया है और वापस लॉग इन किया है, यह मानकर आपको काढ़ा समूह brew doctorमें किसी भी उपयोगकर्ता द्वारा सफलता की सूचना देनी चाहिए । यदि आपने एकल उपयोगकर्ता होमब्रेव के लिए चीजों को ठीक किया है, तो लॉग आउट और बैक-इन जरूरी नहीं होना चाहिए क्योंकि आपके किसी भी ग्रुप मेंबरशिप में बदलाव नहीं हुआ है।


2
धन्यवाद! मुझे शायद यूनिक्स उपयोगकर्ता समूहों के बारे में अधिक पढ़ना चाहिए। मैं इस बारे में पूरी तरह से स्पष्ट हूं कि यह तर्क को अच्छी तरह से पचाने के लिए कैसे काम करता है। लेकिन यह बहुत समझदार लगता है, सूचक के लिए धन्यवाद!
जिक्कू जोस

1
यूनिक्स समूह आपके द्वारा ग्रहण किए जाने की तुलना में अधिक सरल हैं - प्रत्येक फ़ाइल ने उस उपयोगकर्ता के लिए उपलब्ध 'उपयोगकर्ता' और 'समूह' के लिए, और 'अन्य' के लिए उपलब्ध अनुमतियों को पढ़ा, लिखा और निष्पादित किया है। यदि आप उस समूह को सेट करते हैं, जो किसी फ़ाइल या फ़ोल्डर का मालिक है, और उस फ़ोल्डर के लिए 'समूह' के लिए लेखन अनुमतियाँ जोड़ें, तो उस समूह का कोई भी उपयोगकर्ता फ़ोल्डर में लिख सकता है। वहाँ वास्तव में इससे अधिक नहीं है। खिड़कियों में अनुमतियों के रूप में लगभग जटिल नहीं है।
स्टोन्क्रशर 19

1
तो इसका एक आसान तरीका एक समूह के लिए फ़ाइलों के सेट की अनुमति प्रणाली को क्लब करना है ताकि एक ही बार में उन सभी अनुमतियों को लागू करने के लिए कई उपयोगकर्ताओं को आसानी से जोड़ा जा सके?
जिक्कू जोस

2
इसने मेरी काढ़ा लिंक की समस्याओं को ठीक किया, धन्यवाद।
कीथ टायलर

फिर भी मुझे एक संवेदनशील निर्देशिका जैसे /usr/local/binसमूह-लेखन, जासूसी करने के लिए थोड़ा खतरनाक है । एक बहु-उपयोगकर्ता वातावरण में। क्या यह वास्तव में "आधिकारिक" काढ़ा तरीका है?
corwin.amber

67

जो लोग तलाश कर रहे हैं, उनके लिए /usr/local/sbinलेखन योग्य त्रुटि नहीं है:

अद्यतन: यह हो सकता है /usr/local/someOtherFolderNameजैसे /usr/local/include। आपको बस उस फ़ोल्डर को बनाना होगा:

  • sudo mkdir someOtherFolderName

पहले sbinफ़ोल्डर बनाएं , ध्यान दें कि इसके लिए sudoविशेषाधिकारों की आवश्यकता है

  • cd /usr/local

  • sudo mkdir sbin

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

  • brew link yourPackageName


6
यह मेरे लिए काम किया
रॉबिन

मुझे निर्देशिका को मेरे ~ / .bash_profile में जोड़ने की भी आवश्यकता थी:PATH=$PATH:/usr/local/sbin
जूलियन

घंटों खोज के बाद, यह एकमात्र ऐसी चीज है जो मेरे लिए काम करती है। मैं हाई सिएरा पर हूं।
इसका जोजटर्नर

34

मैंने अपने विशेष सेटअप के लिए निम्नलिखित कमांड काम किया

brew doctor

और फिर उस ने मुझे दिखाया जहां मेरी त्रुटियां थीं, और फिर ऊपर की टिप्पणी से यह थोड़ा अलग आदेश है।

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

2
स्पष्ट सुझाव के लिए धन्यवाद। मैं भूल जाता हूंbrew doctor
एंटनी

1
इससे यहाँ समस्या हल हो गई
खोसडोक्टर

brew doctorअच्छा है।
एच्लोइउ

एक आकर्षण की तरह काम किया, धन्यवाद
हेक्सले

15

मुझे एक ही समस्या मिली, हम तीन चरणों में हल कर सकते हैं: -

चरण 1

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

चरण 2

brew doctor

चरण 3

brew prune

यदि आपको अभी भी कोई लिंकिंग समस्या आती है, तो इसके लिए कहने mysqlदें, बस लिखें

brew link mysql

यह काम करेगा।


1
मेरे लिए खरगोश के लिए काम किया
उमर

Step चरण 1 ’का उद्देश्य क्या है?
कॉनरैड C

1
काढ़ा डॉक्टर अंगूठे! काढ़ा पीना नहीं था, लेकिन अन्य लापता पैकेजों को स्थापित किया और यह मोंगोडब के लिए काम किया।
चेनलू

'ब्रुने प्रून' को कॉल करना अक्षम है। इसके बजाय 'काढ़ा साफ' का उपयोग करें।
हनुमानदेव

12

मैक ओएस हाई सिएरा को चलाने के दौरान इस मुद्दे पर चलने वालों के लिए (इस पद के 4 साल बाद दी गई) - मेरे द्वारा बताए गए कदमों ने इस समस्या को हल कर दिया। अनिवार्य रूप से सिर्फ काढ़ा की स्थापना रद्द करने और पुनः स्थापित करने की रूपरेखा है।

https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4

उन चरणों को चलाने के बाद, brew link एक आकर्षण की तरह काम किया!


मैंने पाया कि यह मेरे लिए काम कर रहा था (शुरुआती डंप कमांड के बिना): github.com/Homebrew/brew/issues/3285#issuecomment-334976806
vr_driver

धन्यवाद! हैरी द्वारा शीर्ष उत्तर की कोशिश की, कोई भाग्य नहीं - यह कोशिश की, और यह एक आकर्षण की तरह काम किया!
जो

मेरे लिए काम किया, धन्यवाद!
ज़ेन

9

मेरे लिए हल चलाना था brew update

तो, यह पहले करो।

यह होमब्रे से परिचित लोगों के लिए सामान्य अभ्यास हो सकता है, लेकिन मैं उन लोगों में से नहीं हूं।

संपादित करें: मुझे पता चला कि मुझे brew doctor@ kinnth के इसी प्रश्न के उत्तर के अनुसार सुझाव देकर चलाने की आवश्यकता है ।

एक सामान्य समस्या निवारण वर्कफ़्लो इस तरह दिखाई दे सकता है: 1. रन brew update 2. यदि वह चलाने में मदद नहीं करता है brew doctorऔर उसके निर्देशों का पालन करता है 3. यदि वह स्टैक ओवरफ्लो की जांच में मदद नहीं करता है


1
यह मेरे लिए सब कुछ तय करता है और कुछ भी करने से पहले अच्छी तरह से करने योग्य है।
रॉब इवान्स

सभी काढ़ा चिकित्सक यह इंगित करते हैं कि मेरे सेलर में मैं
अनपेक्षित कीग्स है

@AlxVallejo यह वही है जो मैंने एक समस्या को हल करने के लिए किया था जब मुझे ओपी के रूप में लगभग समान त्रुटि प्राप्त हो रही थी। Brew Doctor से आपको जो संदेश मिला वह मुझे एक अलग मुद्दे की तरह लगता है। "1. रन बीवर अपडेट 2. अगर वह काढ़ा डॉक्टर को चलाने में मदद नहीं करता है और उसके निर्देशों का पालन करता है 3. यदि वह स्टैक ओवरफ्लो की जांच में मदद नहीं करता है" तो भी लागू होता है।
FragmentalStew

6

करते समय काढ़ा लिंक नोड इसके अलावा मैं निम्न समस्याओं के साथ-साथ हो गया है:

त्रुटि: सहानुभूति में शामिल नहीं किया जा सकता / नोड / यूएसआर / स्थानीय / शामिल करने योग्य नहीं है।

/Usr/local/Cellar/node/9.3.0 लिंक करना ... त्रुटि: अनुमति अस्वीकृत @ dir_s_mkdir - / usr / स्थानीय / देय

उपरोक्त हल करने के लिए बस / usr / स्थानीय / पर जाएं और उन फ़ोल्डरों की उपलब्धता की जांच करें जिनमें 'शामिल हैं' और 'लिबर' हैं, यदि वे फ़ोल्डर उपलब्ध नहीं हैं, तो उन्हें मैन्युअल रूप से बनाएं।

और फिर से काढ़ा स्थापित नोड चलाएं


5

ऐसा इसलिए है क्योंकि वर्तमान उपयोगकर्ता को उस पथ में लिखने की अनुमति नहीं है । इसलिए, r / w (पढ़ने / लिखने) की अनुमतियों को बदलने के लिए आप 1. टर्मिनल, या 2. ग्राफ़िकल "गेट इन्फो" विंडो का उपयोग कर सकते हैं।

1. टर्मिनल का उपयोग करना

Google टर्मिनल से chmod / chown (चेंज मोड / चेंज मालिक) कमांड का उपयोग कैसे करें

2. चित्रमय 'जानकारी प्राप्त करें' का उपयोग करना

आप उस फ़ोल्डर / फ़ाइल पर राइट क्लिक कर सकते हैं जिसे आप अनुमतियाँ बदलना चाहते हैं, फिर गेट इन्फो खोलें जो आपको नीचे की तरह एक विंडो दिखाएगा, जिसमें आप आसानी से r / w अनुमतियां बदल सकते हैं: यहां छवि विवरण दर्ज करें

यदि संभव हो तो अपने अस्थायी काम के बाद अनुमति को "केवल पढ़ने के लिए" वापस बदलने के लिए याद रखें


काढ़ा चिकित्सक का उपयोग करें - यह ठीक से (सिस्टम) फ़ोल्डरों की पहचान करेगा जिन्हें फिक्सिंग की आवश्यकता है।
जॉन्डपोप

3

मैंने सोफोस एंटी-वायरस उपयोगकर्ताओं के लिए निम्नलिखित प्रासंगिक पाया है:

https://stackoverflow.com/a/32981184

https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029

संक्षेप में, सोफोस कुछ / usr / स्थानीय निर्देशिकाओं की अनुमति बदल रहा है। सोफोस ने इसे पैच किया है और इसे 9.4.1 संस्करण के साथ शामिल किया गया है।


दुर्भाग्य से मुझे अभी भी यह मिलता है, और सोफोस स्थापित किया है, FWIW: |
रॉगरडपैक

2

मेरी समस्या थी

Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.

chownमदद नहीं की, लेकिन मैंने brew doctorसलाह चलाने का पालन किया और इस चेतावनी ने मेरी मदद की:

Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/share/man/man3/* 

आखिरकार brew pruneठीक काम!


महान। मेरे लिये कार्य करता है।
बाघसालियर

1

उन लोगों के लिए जो परिचित नहीं हैं:

sudo chown -R YOUR_COMPUTER_USER_NAME PATH_OF_FILE

0

यदि आप खोजक में फ़ोल्डर में जाते हैं, तो राइट क्लिक करें और "गेट इन्फो" चुनें, आप फ़ोल्डर के लिए "साझाकरण और अनुमतियाँ" अनुभाग पर जा सकते हैं और "रीड एंड राइट" को "सभी" के लिए अनुमति दे सकते हैं।

यह वही है जो मैं इस त्रुटि के साथ सहानुभूति पास करने के लिए करता हूं। इसके अलावा काढ़ा भी फ़ोल्डर पर अनुमतियों को रीसेट करने के लिए लगता है जैसे कि आपने कुछ भी नहीं बदला था


0

यदि आपके पास पहले से /usr/localमौजूद पैकेज के लिए निर्देशिका है , तो आप इस निर्देशिका को हटाने का प्रयास कर सकते हैं।

मेरे मामले में मैंने पहले पैकेज को स्थापित किया था जिसे मैं काढ़ा का उपयोग किए बिना स्थापित करने की कोशिश कर रहा था, और फिर इसे अनइंस्टॉल कर दिया था। /usr/local/<my_package>/उस पिछली स्थापना से एक निर्देशिका बची थी। मैंने यह फ़ोल्डर हटा दिया है ( sudo rm -rf /usr/local/<my_package>/) और उसके बाद काढ़ा लिंक कदम सफल रहा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.