क्या मैं sudo विशेषाधिकार के बिना Homebrew स्थापित कर सकता हूं?


26

Homebrew अच्छी तरह से sudo विशेषाधिकार के बिना पैकेज की स्थापना की अनुमति देता है, लेकिन ऐसा लगता है कि मुझे Homebrew को स्थापित करने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता है।

मैं Homebrew को मैक वातावरण में स्थापित करना चाहूंगा जहां मेरे पास sudo या व्यवस्थापक विशेषाधिकार नहीं हैं। क्या यह संभव है?

जवाबों:


12

नहीं .. जब तक आप महत्वपूर्ण सर्जरी नहीं करते।

कारण यह है कि Homebrew दृढ़ता से संकुल को स्थापित करने पर जोर देता है /usr/local। वास्तव में, भले ही आपने इसे कहीं और स्थापित करने के लिए मजबूर किया हो, जब आप brew installपैकेजों को स्थापित करने के लिए उपयोग करते हैं तो आप निर्भरता को तोड़ सकते हैं । यदि इन सभी पैकेजों को पूर्व संकलित नहीं किया गया है और अधिकांश में रहने की उम्मीद है /usr/local

इस जिद का कारण यह है कि /usr/localPOSIX इस तरह से सामान स्थापित करने की सिफारिश करता है। आदेश बनाने के लिए /usr/localHomebrew निर्देशिका और असाइन स्वामित्व बनाने के लिए अस्थायी व्यवस्थापक क्रेडेंशियल की जरूरत है।

यह, बदले में, क्या आप क्रेडेंशियल्स को ऊपर उठाए बिना कुछ और स्थापित करने की अनुमति देता है।


धन्यवाद, लेकिन मुझे लगता है कि आपने मेरे सवाल को याद किया। मुझे पता है कि यह कैसे और कहाँ पैकेज स्थापित करता है, लेकिन मैं बिना व्यवस्थापक या sudo के Homebrew स्थापित करना चाहता हूं ।
बेंजामिनगोल्ड

मुझे आपका प्रश्न याद नहीं आया। जवाब था "नहीं" .. मैंने बस गलती से "हाँ" कहा। आप आसानी से वह नहीं कर सकते जो आप पूछ रहे हैं और यहां तक ​​कि अगर आपने होमब्रेव इंस्टॉलर को अपने होम डायरेक्टरी की एक शाखा में चीजों को डालने के लिए इसे संपादित करने के लिए मजबूर किया, तो इंस्टॉलेशन के बाद बहुत सारे ब्रूव्स विफल हो जाएंगे।
डेविड होल्ज़र

ठीक है शुक्रिया। मैं पिछले "हाँ" से भ्रमित था।
बेंजामिनगोल्ड

3
यह सिर्फ गलत है, या कम से कम आप "महत्वपूर्ण सर्जरी" की परिभाषा बहुत अलग है तो मेरा है। मैं brewअपने होम डायरेक्टरी में 5 प्लस वर्षों के लिए एक उपसर्ग सेट के साथ चल रहा हूं और उस समय में 1 या 2 टूटे हुए पैकेजों का सामना कर रहा हूं।
जेम्स मैकमोहन

हालाँकि, यह भी है, जो कि मिलना मुश्किल है: त्रुटि: आप Xcode लाइसेंस के लिए सहमत नहीं हैं। कृपया इसे चलाकर हल करें: sudo xcodebuild -license स्वीकार
अल्बर्ट

17

हाँ।

मैंने sudoअपनी पसंद की निर्देशिका का उपयोग न करने और उपयोग करने के लिए इंस्टॉल स्क्रिप्ट को संशोधित किया । https://gist.github.com/skyl/36563a5be809e54dc139

उसे डाउनलोड करें, YOUR_HOMEस्क्रिप्ट को पूर्ण पथ पर सेट करें । chmod +xलिपी। YOUR_HOME/usr/localनिर्देशिका बनाएँ । फिर, स्क्रिप्ट निष्पादित करें।

./install.rb

में .bash_profile, मैंने सेट किया (मैं सकारात्मक नहीं हूँ यह महत्वपूर्ण है, बहुत निश्चित है):

export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local

अब मैं कर सकता हूँ:

brew install wget

सुनिश्चित करें कि binनिर्देशिका, YOUR_HOME+ /usr/local/binअपने पर है $PATH

which wget

1
इंस्टॉल स्क्रिप्ट में मुझे #{YOUR_HOME}उपसर्ग को HOMEBREW_CACHEवैरिएबल में भी जोड़ना था । यही कारण है, और क्योंकि सिस्टम व्यवस्थापक को पहले से ही homebrew स्थापित किया था, मैं जोड़ने के लिए किया था export PATH=/path/to/home/usr/local/bin:$PATHकरने के लिए .bash_profileअच्छी तरह से। लेकिन उस सब के साथ, यह महान काम करने लगता है।
गोल्म्सचेन २६'१५

3
बस फिर से प्रक्रिया से गुजरा, और मैं सिर्फ यह बताना चाहता था usrकि स्क्रिप्ट चलने से पहले आपको अपने घर की निर्देशिका में एक निर्देशिका भी बनानी होगी। साथ ही, जब आप जोड़ने #{YOUR_HOME}के लिए HOMEBREW_CACHEचर, यह आप काम करने के लिए इसके लिए दोहरे उद्धरण चिह्नों के लिए एकल उद्धरण को बदलने की जरूरत है। इसलिए कुछ कदम हैं, लेकिन होमब्रे की शक्ति प्राप्त करने के लिए यह निश्चित रूप से इसके लायक है।
गोलम्सचेक

मुझे विश्वास है कि रूबी के स्ट्रिंग प्रारूप में किक करने के लिए @golmschenk दोहरे उद्धरण आवश्यक हैं।
स्काईलार सैवेलैंड

1
यह एक अच्छा समायोजन है। आपको वास्तव में होम-ब्रू प्रोजेक्ट के लिए एक पुल अनुरोध प्रस्तुत करना चाहिए।
डेविड होल्जर

1
मैंने macOS Sierra (10.12.3) पर एक गैर-व्यवस्थापक खाते से यह कोशिश की और यह काम नहीं किया क्योंकि इसे करने की आवश्यकता थी chgrp admin /usr/local, और एक गैर-व्यवस्थापक खाता व्यवस्थापक समूह का सदस्य नहीं है, इसलिए यह 'कर सकता है t उस समूह के लिए कुछ भी बदलें। यह बहुत अच्छा होगा अगर इसे एक सामान्य गैर-व्यवस्थापक खाते के लिए काम करने के लिए बनाया जा सकता है (न कि केवल उन व्यवस्थापक खातों के लिए जो किसी अजीब कारण से सूडो को बंद कर दिया गया है)।
आकर्षक बनाएं

0

हाँ।

काढ़ा प्रणाली बूटस्ट्रैपबल प्रतीत होती है

#!/bin/bash
set -ex

export HOMEBREW_PREFIX=~/homebrew
# export HOMEBREW_NO_ANALYTICS=1
mkdir -p "${HOMEBREW_PREFIX}"
curl -fsSLk https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "${HOMEBREW_PREFIX}"

ls -laR "${HOMEBREW_PREFIX}"

export PATH="${HOMEBREW_PREFIX}/bin:${PATH}"
type -a brew

type -a openssl || :
openssl version -a || :

type -a curl || :
curl -V || :

# Fails to lock a .git/config file.
##brew analytics off

# No "brew update" until installing the proper openssl and a curl that uses it.
# brew update

# brew remove openssl || :
brew install openssl
brew link --force openssl

# brew remove curl || :
brew install --with-openssl curl
brew link --force curl || :
curl -V

ls -la "${HOMEBREW_PREFIX}/opt"
ls -la "${HOMEBREW_PREFIX}/bin"
ls -laLR "${HOMEBREW_PREFIX}/opt/curl/"

0

सूडो के बिना होमब्रेव स्थापित करने के लिए ।

git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

टर्मिनल को पुनरारंभ करें और चलाएं

brew --version

0

ब्रू ने अपने गिट रेपो को स्थानांतरित कर दिया, यही वजह है कि ऊपर अब काम नहीं करता है।

git clone git@github.com:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

1
'उपरोक्त' से क्या आपका मतलब है अतीक आनंद का जवाब ? यह हमेशा आपका जवाब 'ऊपर' नहीं होगा। यदि उनके उत्तर में कुछ बदला जाना चाहिए, तो उसे स्वयं संपादित करें।
nekomatic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.