PATH में संशोधन करना ताकि / usr / स्थानीय / बिन / usr / बिन से आगे हो


24

मैं काढ़ा स्थापित करने की कोशिश कर रहा हूं लेकिन निम्नलिखित चेतावनी प्राप्त करें:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

मुझे नहीं पता कि मार्ग में संशोधन कैसे किया जाए। मैंने इस स्टैक ओवरफ्लो पोस्ट (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2) से कई फाइलें खोजी हैं, लेकिन संपादित करने के लिए कोई रीलेवन पथ नहीं ढूँढ सकता। एकमात्र फ़ाइल जो मेरे पास मौजूद है वह मेरी / etc / प्रोफ़ाइल फ़ाइल है जो वर्तमान में दिखती है:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

मैं अजगर को बस अनइंस्टॉल करना चाहता था, फिर होमब्रेव के माध्यम से इसे फिर से स्थापित किया, लेकिन एक ही बार में बहुत सी चीजों को तोड़ने के बारे में थोड़ा परेशान हूं।

क्या मार्ग में संशोधन करने का एक आसान तरीका है? क्या मुझे एक .bash_profile फ़ाइल बनानी चाहिए? अग्रिम में किसी भी मदद के लिए धन्यवाद।

जवाबों:


30

हाँ, .bash_profileअपने घर निर्देशिका में एक फ़ाइल बनाएँ

PATH="/usr/local/bin:$PATH"

और फिर परिवर्तन को सक्रिय बनाने के लिए निम्न में से एक करें

  • निष्पादित . ~/.bash_profile
  • PATH="/usr/local/bin:$PATH"वर्तमान शेल में निष्पादित करें
  • टर्मिनल को पुनरारंभ करें

2
@threenovation यदि उपरोक्त उत्तर सही है, तो क्या मैं आपको इसका उत्तर के रूप में चिह्नित करने का सुझाव दे सकता हूं (उत्तर के बगल में टिक पर क्लिक करें)
Stu Wilson

मुझे आश्चर्य है कि अगर यह निर्यात किया जाना चाहिए? बाल प्रक्रियाओं में यह नया रास्ता भी होना चाहिए। इसके अलावा: जब मैंने काढ़ा बनाया, तो उसने मुझे सतर्क नहीं किया कि / usr / bin इससे पहले / usr / लोकल / बिन आए।
स्टीवन लू

@StevenLu, यह आपके द्वारा .bash_profile को मिलने वाले समय से पहले से ही निर्यात किया जाता है। यह स्पष्ट रूप से इसे फिर से निर्यात करने के लिए चोट नहीं पहुंचाएगा, लेकिन आवश्यक नहीं है।
ग्लेन जैकमैन

इसके लिए धन्यवाद। काम किया "आपका सिस्टम काढ़ा करने के लिए कठोर है।"
वेजू

मुझे लगता है कि इसमें डुप्लिकेट प्रविष्टियाँ मिल रही हैं $PATH
flow2k

10

आपको संशोधन / आदि / पथ की आवश्यकता है ताकि / usr / स्थानीय / बिन पहले / usr / बिन में सूचीबद्ध हो । ऐसा करने के लिए आपको अपने संपादक से संपर्क करना होगा।

संपादक को खोलने का एक तरीका है

 sudo open -t /etc/paths

मेरे PATH को मेरे .bash_profile में सही तरीके से कॉन्फ़िगर किया गया था, लेकिन अंदर नहीं /etc/paths। इसने खूबसूरती से काम किया।
निक टोमलिन

7
अपना रास्ता सेट करने के लिए इस विधि का उपयोग न करें - जोखिम है कि गैर-टर्मिनल अनुप्रयोग "पीसा" घटकों को उठाएगा और विफल हो जाएगा। "सुडो" का उपयोग करना भी एक लाल झंडा होना चाहिए जब तक कि आप वास्तव में यह नहीं समझते कि आप क्या कर रहे हैं (विशेष रूप से मैक-होमब्रे जैसी उपयोगकर्ता-स्तरीय विकास प्रणाली)। अपने .bash_profile और पुनरारंभ टर्मिनल का संपादन पर्याप्त होना चाहिए।
21

@rholmes तो .bash_profileइंटरएक्टिव उपयोगकर्ता के गोले को प्रभावित करने के लिए केवल और अन्य अनुप्रयोगों को नहीं बदलता है ?
flow2k

1
@ flow2k .bash_profile इंटरैक्टिव उपयोगकर्ता गोले को प्रभावित करेगा। कोई भी निर्यात किए गए चर शेल कमांड लाइन से लॉन्च किए गए एप्लिकेशन द्वारा देखे जाएंगे (उदाहरण के लिए, "नियमित" मैक ऐप, या कमांड लाइन कमांड लॉन्च करना)। कुछ और विवरण यहां मिल सकते हैं, लेकिन वे आपके द्वारा पूछे गए से भी अधिक बारीक भेद कर रहे हैं: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos ग्लेन जैकमैन का उत्तर उपयोग करने के लिए एक है ।
rholmes

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