कई साल पहले, आप brewरूट के रूप में रनिंग करके रूट के साथ भाग सकते थे, brewलेकिन उन्होंने उस सुविधा को हटा दिया। इसलिए होमब्रे १.१.६ में, मैं /usr/local/Homebrew/Library/Homebrew/brew.shरूट चेक को हटाने के लिए संपादन करता था (एक ने कहा कि यह "अत्यंत खतरनाक" है) इसलिए मैं brewरूट के रूप में चला सकता था ।
Homebrew का नया संस्करण अभी भी उसी के साथ काम करता है, लेकिन brew.shमेरे चलने के बाद brewभी हर बार फाइल वापस लौटाता रहता है , भले ही मैं chmod 500यह करूं । मैं इसे बदलने के लिए एक स्क्रिप्ट लिख सकता था फिर brewस्वचालित रूप से चला सकता हूं, लेकिन मुझे यकीन नहीं है कि यह हमेशा काम करेगा और चांस नहीं लेना चाहता। क्या किसी ने Homebrew को रूट के रूप में चलाने के लिए एक अलग विधि पाई है?
sudoइसे रूट के रूप में चलाता है, और यह मुझे वही "बेहद खतरनाक" त्रुटि देता है। मैं रूट के रूप में चलाना चाहता हूं क्योंकि इसमें कुछ निश्चित पैकेजों को स्थापित करने में समस्याएं हैं, खासकर अगर कुछ भी Homebrew (जैसे माध्यम से pip) के माध्यम से स्थापित नहीं किया गया था । मैं कई बार उस मार्ग से नीचे जा चुका हूँ। जब तक मैं सब कुछ रूट के रूप में स्थापित नहीं करता, तब तक यह अजीब वर्कअराउंड के बिना कई उपयोगकर्ताओं के लिए ठीक से काम नहीं करता है।
rootजोखिम भरा है। यहां तक कि एक पैकेज प्रबंधक के बिना एक पैकेज का निर्माण करते हुए, आप पैकेज को एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता (स्वयं) के रूप में बनाएंगे और फिर पैकेज को उसी के rootसाथ स्थापित करेंगे sudo। फ़िंक और मैकपोर्ट जैसे पैकेज प्रबंधक अपने स्वयं के गैर-विशेषाधिकार वाले उपयोगकर्ताओं के साथ निर्माण करते हैं और फिर स्थापित होते हैं root। Homebrew के पास ऐसा कोई तंत्र नहीं है।
brew.shफ़ाइल को संशोधित करने और फिर एक brewकमांड चलाने के बाद वापस किया जा रहा है । इसलिए मैं भाग सकता हूं sudo brew whateverऔर brew whateverठीक हो सकता हूं । मेरा brew --versionआउटपुट इस प्रकार है: Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28) FYI करें, मैंने फ़ंक्शन brew.shमें सभी लाइनों पर टिप्पणी करने के लिए अपनी फ़ाइल को संशोधित किया check-run-command-as-rootऔर returnइसके बजाय फ़ंक्शन के शीर्ष पर एक एकल स्टेटमेंट रखा ।
brewजड़ के रूप में क्यों चलना चाहते हैं ? इसके अलावा,sudoआपके उद्देश्यों के लिए पर्याप्त नहीं है?