स्थायी रूप से OSX में PATH पर्यावरण चर सेट करना


143

मैंने ओएसएक्स पर पर्यावरणीय चर को स्थायी रूप से कैसे सेट किया जाए, इस पर कई उत्तर पढ़े हैं।

सबसे पहले, मैंने यह कोशिश की, कैसे लिनक्स / यूनिक्स पर $ PATH को स्थायी रूप से सेट किया जाए? लेकिन मेरे पास एक त्रुटि संदेश था no such file and directory, इसलिए मैंने सोचा कि मैं ~/.bash_profileइसके बजाय कोशिश कर सकता हूं ~/.profileलेकिन यह काम नहीं किया।

दूसरा, मुझे यह समाधान मिला कि ओएस एक्स में अनुप्रयोगों द्वारा उपयोग किए गए $ पैट को कैसे सेट किया जाए , जिसमें परिवर्तन करने की सलाह दी जाती है

~ / .MacOSX / environment.plist

लेकिन फिर से मुझसे no such file and directoryत्रुटि हुई।

मुझे इन चरों को सेट करने के लिए एक तरीके की आवश्यकता है ताकि इसे हर बार फिर से सेट करने की आवश्यकता न पड़े और जब भी मैं एक नया टर्मिनल सत्र खोलूं।


आप सिर्फ ~ / .profile अधिकांश * nix सिस्टम बना सकते हैं जो फ़ाइल को पहचानता है और यदि मौजूद है तो उसका उपयोग करता है। आपको एक रिबूट की आवश्यकता हो सकती है
trve.fa7ad

~ / .MacOSX / environment.plist पदावनत है।
पियरे ALBARÈDE

जवाबों:


258

आपको इसे जोड़ना होगा /etc/paths

संदर्भ (जो मेरे लिए काम करता है): यहां


6
यह एकमात्र समाधान है जो एल कैपिटन पर काम करता है। संशोधन .bash_profileऔर से बेहतर है .profile
इगोरगानापल्स्की 21

1
जोड़ा गया संदर्भ के लिए उत्तर को उत्कीर्ण किया गया है जो बताता है कि तत्वों को पथ से कैसे हटाया जाए (टिप्पणियों में)।
अमुधन

यह EL Capitan में काम करता था। सभी टर्मिनलों को बंद करें और echo $ PATH की जांच के लिए एक नया टर्मिनल खोलें।
प्रेम अनंत C

इसका उत्तर 5 साल पुराना है लेकिन यह अभी भी सबसे आसान और सरल उपाय है। उत्तर + संदर्भ के लिए धन्यवाद
Rachit Magon

अपने टर्मिनल को 'रिस्टार्ट' करना न भूलें।
नीरज सिंह

27

मैंने पाया है कि कुछ फाइलें हैं जो $PATHmacOS में वेरिएबल को प्रभावित कर सकती हैं (मेरे लिए काम करता है, 10.11 El Capitan), जो नीचे सूचीबद्ध हैं:

  1. जैसा कि शीर्ष मतदान जवाब में कहा गया है, vi /etc/pathsजो मेरे दृष्टिकोण से अनुशंसित है।

  2. इसके अलावा /etc/paths.dनिर्देशिका को मत भूलना , जिसमें फ़ाइलें $PATHचर को प्रभावित कर सकती हैं , मेरे मामले में gitऔर mono-commandपथ सेट कर सकती हैं । आप ls -l /etc/paths.dआइटम सूचीबद्ध कर सकते हैं और rm /etc/paths.d/path_you_dislikeआइटम निकाल सकते हैं।

  3. यदि आप "bash" वातावरण ( Terminal.appउदाहरण के लिए डिफ़ॉल्ट ) का उपयोग कर रहे हैं , तो आपको बाहर की जाँच करनी चाहिए ~/.bash_profileया ~/.bashrc। हो सकता है कि वह फ़ाइल अभी तक न हो, लेकिन इन दोनों फ़ाइलों का प्रभाव है $PATH

  4. यदि आप "zsh" वातावरण ( उदाहरण के लिए ओह-माय-ज़श ) का उपयोग कर रहे हैं , तो आपको चीज़ के ~./zshrcबजाय बाहर की जाँच करनी चाहिए ~/.bash*

और फिर सभी टर्मिनल विंडो को रिस्टार्ट करना न भूलेंecho $PATH$PATHस्ट्रिंग होगा PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2

ध्यान दिया कि पहले दो तरीके ( /etc/pathsऔर /etc/path.d) /निर्देशिका में हैं जो आपके कंप्यूटर के सभी खातों को प्रभावित करेंगे जबकि अंतिम दो तरीके ( ~/.bash*या ~/.zsh*) ~/निर्देशिका (उर्फ /Users/yourusername/) में हैं , जो केवल आपकी खाता सेटिंग को प्रभावित करेगा।

और पढ़ें: मैक ओएस एक्स: सेट / बदलें $ पेट वैरिएबल - nixCraft


2
मुझे कुछ मामलों में संपादन .bash_profile काफी पसंद है, क्योंकि तब यदि आपके मशीन पर दो उपयोगकर्ता खाते हैं, तो आप उनमें से किसी एक के लिए स्क्रिप्ट जोड़ सकते हैं जैसे ~ ~ देव / लिपियाँ
पेटी

मुझे क्या एहसास नहीं था कि मैं बैश के बजाय zsh का उपयोग कर रहा था। धन्यवाद!
शेरनी

11

आप इसे भी जोड़ सकते हैं

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

करने के लिए ~/.bash_profile, तो बनाने ~/.bashrcजहां सिर्फ पथ के लिए और अधिक रास्तों जोड़ सकते हैं। के साथ एक उदाहरण.

export PATH=$PATH:.

धन्यवाद। मैंने पिछले समाधान का उपयोग किया था, लेकिन अगर मैं इस विधि को लागू करता हूं, तो क्या इसका मतलब यह होगा कि मैं DYLD_LIBRARY_PATH चर भी स्थायी रूप से सेट कर सकता हूं?
patti_jane

हाँ, आपको सक्षम होना चाहिए। यदि आप परिवर्तन देखना चाहते हैं, तो अपने टर्मिनल को बंद करें और इसे फिर से खोलें, या टाइप करें. ~/.bashrc
omoman

मैं ऊपर दिए गए कोड को जोड़ता हूं . ~/.bash_profile, फिर टर्मिनल और प्रकार को फिर से खोल देता हूं . ~/.bashrc, लेकिन यह कहता है कि ऐसी कोई फ़ाइल या निर्देशिका नहीं है?
patti_jane

आपको इसे बनाने की आवश्यकता है। उपरोक्त पंक्तियाँ आपके मौजूद .bash_profileहोने पर लोड करने के लिए कहती हैं .bashrc। फिर रिक्त में .bashrc, आप अपनी इच्छानुसार कुछ भी जोड़ सकते हैं।
ओम्मन

आपका बहुत बहुत धन्यवाद! मुझे पता है कि मैं बहुत अधिक पूछ रहा हूं, लेकिन क्या आप एक लिंक जानते हैं जहां यह ठीक से कहा जाता है कि कैसे बनाएं .bashrc? मैं एक अच्छा खोजने का प्रबंधन नहीं कर सका।
patti_jane

8

आप निम्न में से कोई भी फाइल खोल सकते हैं:

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

और जोड़:

export PATH="$PATH:your/new/path/here"

7

MacOS में PATH पर्यावरण चर में जोड़े जाने वाले एक नए पथ के लिए बस /etc/paths.dनिर्देशिका के तहत एक नई फ़ाइल बनाएं और फ़ाइल में सेट किए जाने के लिए लेखन पथ जोड़ें। टर्मिनल को पुनरारंभ करें। यदि आप echo $PATHपथ को पर्यावरण चर में जोड़ा गया था, तो इसकी पुष्टि करने के लिए आप प्रॉम्प्ट पर देख सकते हैं।

उदाहरण के लिए: चर में एक नया पथ जोड़ने के /usr/local/sbinलिए PATH:

cd /etc/paths.d
sudo vi newfile

इसमें पथ जोड़ें newfileऔर इसे सहेजें।

टर्मिनल को पुनरारंभ करें और echo $PATHपुष्टि करने के लिए टाइप करें


मुझे यकीन नहीं है कि यह जवाब क्यों कम हो रहा है। यह पथ चर को व्यवस्थित करने के लिए एक उचित और समझदार तरीका लगता है। मैंने हर गैर-मानक पथ चर के लिए अलग-अलग फ़ाइलों को बनाने के लिए paths.d का उपयोग किया है।
p_q

1

मैंने पहली विधि की कोशिश की और संदर्भ पृष्ठ के माध्यम से चला गया, अच्छी तरह से निष्पादित पथ सेटिंग। लेकिन जब मैंने $ $ प्रतिध्वनित किया तो यह पथ सेट को जूता नहीं करता था


1
क्या आपने टर्मिनल बंद किया और पुनः आरंभ किया, या sourceनए वातावरण को लोड करने के लिए कॉल किया?
डोम

yaa..restarted टर्मिनल..लेकिन PATH वैरिएबल फिर मौजूद नहीं है
प्रज्वलित Mind

आप क्या खोल रहे हैं? Ps -p $ $ के साथ जांचें। यदि यह बैश नहीं है, तो स्टार्टअप फ़ाइलों को अलग नाम दिया गया है।
पियरे ALBARÈDE

0

मैक में पथ की स्थापना के लिए दो विधियों का पालन किया जा सकता है।

  1. चर नाम के लिए एक फ़ाइल बना रहा है और /etc/paths.d के तहत पथ पेस्ट करें और फ़ाइल को profile_bashrc पर स्रोत करें।
  2. निर्यात पथ चर के ~/.profile_bashrcरूप में

    निर्यात VARIABLE_NAME = $ (PATH_VALUE)

और मार्ग का स्रोत है। इसका सरल और स्थिर है।

आप किसी भी सेट कर सकते हैं path variableद्वारा Mac terminalया में linuxभी।

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