Homebrew के लिए `/ usr / स्थानीय` लिखने योग्य में फ़ाइलें बनाएँ


35

मैं अच्छी तरह से काम कर रहा homebrew पाने के लिए कोशिश कर रहा है, लेकिन ऐसा लगता है कि सब कुछ अंदर /usr/localनहीं है, और सब कुछ खत्म हो जाता है।

यह मुझे पुनरावृत्ति करने के लिए कहता रहता है chown /usr/local, और मैंने यह कोशिश की। ऑपरेशन से इनकार कर दिया, तो मैं इसे sudo'd। यह काम करने के लिए लग रहा था, लेकिन एक भयानक चुप्पी के साथ जो मैंने सुना है वह यूनिक्स में विनम्र माना जाता है। दुर्भाग्य से, कोई भी सफल प्रयास brew updateत्रुटियों के एक ही कैकोफोनी के साथ मिलते हैं।

मैं कमांड को फिर से चलाता हूं -vऔर ऐसा लगता है कि ऑपरेशन को किसी भी चीज के लिए अनुमति नहीं है।

जितना उत्तर शायद "यूनिक्स सीखें" है, मैं रूबी पर एक ट्यूटोरियल के लिए यहां कुछ नौकरी की आवश्यकताओं का पालन करने की कोशिश कर रहा हूं, इसलिए यह कुछ कदम ऊपर है जहां मैं वर्तमान में हूं।

brew doctor:

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var

करता है brew doctorआप कुछ भी उपयोगी बता सकते हैं? यहां आउटपुट पोस्ट करें।
इयान सी

@IanC। यह सब कुछ काढ़ा-संबंधित नहीं होने की एक लंबी सूची है। वहाँ एक stackexchange pastebin उपयोगिता है? वहाँ एक भयानक बहुत है।
टाइगट

खैर, यह अजीब है। वहाँ अब की तुलना में यह बहुत कम था।
टाइगट

बस FYI करें: मैंने अभी-अभी दौड़कर brew updateपाया कि "Homebrew को अब स्वामित्व / usr / लोकल के स्वामित्व की आवश्यकता नहीं है।" इस सवाल में अधिक जानकारी । स्पष्ट रूप से उस बिंदु पर जाने के लिए आपको अभी भी अस्थायी रूप से / usr / स्थानीय पर अपडेट अपडेट करने की आवश्यकता होगी :)
acobster

जवाबों:


26

इसे उस निर्देशिका में परमिट को निम्नलिखित तरीके से बदलते हुए हल किया जाना चाहिए:

$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *

यदि आप अपने समूह को नहीं जानते हैं, तो टाइप करें id -g


महत्वपूर्ण हिस्सा -Rइसे पुनरावर्ती बनाना है। और आपको संभवतः chownउपयोग करना होगा sudo। उपयोगकर्ता समूह के लिए, मैं आमतौर staffपर OS X पर उपयोग करता हूं।
nwinkler

दिलचस्प। समूह का उपयोग केवल उपयोगकर्ता से इतना अलग क्यों है?
टाइगट

4
आपके उपयोगकर्ता के स्वामित्व में / usr / स्थानीय के लिए यह सही क्यों है? मुझे लगता है कि यह एक सुरक्षा जोखिम है, क्योंकि बहुत सारे अन्य कार्यक्रम हैं जो / usr / लोकल का उपयोग करते हैं और चुपचाप इसे लिया जा सकता है। क्या काढ़ा वास्तव में इतना कठोर है?
dfrankow

1
मेरा मानना ​​है कि यह खतरनाक है क्योंकि यह 'स्टाफ' समूह का चयन करता है, जिसका अर्थ है कि ओएस पर प्रत्येक उपयोगकर्ता / usr / की सामग्री को बदल सकता है। आपको शायद 'व्यवस्थापक' पर स्विच करना चाहिए।
Indolering

1
@dfrankow yep, यह homebrew का एक दोष है। उन्होंने यह भी नहीं सोचा कि अगर एक ही मशीन पर दो उपयोगकर्ता हैं तो क्या होगा।
18

22

आपको कमांडो को उन्नत चालु के साथ चलाने के लिए sudo का उपयोग करना होगा, जैसे:

sudo chown -R `whoami` /usr/local

मैंने किया। "ऑपरेशन से इनकार कर दिया, इसलिए मैंने इसे सूदो किया।"
टाइगट

1
मछली खोल उपयोगकर्ताओं के लिए यह हो जाएगाsudo chown -R (whoami) /usr/local
kibin

10

मैं कल macOS 10.13.4 के साथ इस मुद्दे का सामना कर रहा था और मैंने कोशिश की sudo chgrp -R admin /usr/localया sudo chown -R <your-username>:<your-group-name> /usr/localजिसका Operation not permittedउपयोग करते हुए भी त्रुटि मिलीsudo

तो मैं बस की कोशिश की chgrpके लिए Homebrewसे संबंधित फ़ोल्डर admin(मेरे उपयोगकर्ता में है adminऔर अनुदान, समूह आप चल रहे हैं उपयोगकर्ता पर निर्भर करता है, आप एक अलग समूह में परिवर्तन करने के लिए बीड़ सकता है) adminइन आदेशों का उपयोग करते उन फ़ोल्डर के लिए लेखन पहुँच समूह

sudo chgrp -R admin /usr/local/Homebrew/
sudo chmod -R g+w /usr/local/Homebrew/
sudo chgrp -R admin /usr/local/var/homebrew/
sudo chmod -R g+w /usr/local/var/homebrew/

इन आदेशों को चलाने के बाद, मैं किसी भी मुद्दे के बिना एक नया पैकेज स्थापित करने में सक्षम हूं। यदि आप किसी भी अनुमति समस्या को मारते हैं, तो पहले दो आदेशों को फ़ोल्डर नाम को उस स्थान से चलाने का प्रयास करें, जिसे आप अनुमति समस्या को मार रहे हैं।

आशा है कि यह अन्य उपयोगकर्ताओं को macOS 10.13 के साथ मदद करेगा।

नोट: भले ही आप /usr/localके समूह को बदलने या देने के लिए स्वामी बदल रहा हो /usr/localऔर आपके समूह के लिए पहुँच प्रदान कर सकता हो, आपको कभी भी ऐसा नहीं करना चाहिए क्योंकि आप अन्य असंबंधित फ़ोल्डर को संशोधित कर रहे हैं। आपके द्वारा आवश्यक फ़ोल्डर को संशोधित करना अधिक सुरक्षित है।


यह वास्तव में मेरे लिए अच्छा है! <३ धन्यवाद
डेरियस

इसे सही उत्तर के रूप में मतदान किया जाना चाहिए! आपकी सहायताके लिए धन्यवाद!
यनि

2

निर्देशिकाओं पर अनुमतियों के मुद्दों को हल करने के लिए हम निम्नलिखित कमांड कर सकते हैं:

brew prune


0

में रजा द्वारा जवाब इस सवाल का मेरे लिए काम किया:

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

आप / usr / स्थानीय के लिए अनुमति नहीं बदल सकते हैं, लेकिन आप नीचे दिए गए फ़ोल्डर के लिए सही अनुमति बदल सकते हैं

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