जवाबों:
/etc/launchd.conf
अब 10.10 में समर्थित नहीं है। देखें man launchctl
:
/Etc/launchd.conf फ़ाइल को अब शुरुआती बूट समय के दौरान चलने के लिए सब-कमंड के लिए परामर्श नहीं दिया जाता है; इस कार्यक्षमता को सुरक्षा कारणों से हटा दिया गया था।
अब आप इस उदाहरण को इस प्रकार बचा सकते हैं ~/Library/LaunchAgents/my.startup.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.startup</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>launchctl setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
launchctl setenv
आदेश, उपयोगकर्ता के रूप में चलाए है तो यह केवल उपयोगकर्ता डोमेन में शुरू की प्रक्रियाओं के लिए लागू होता है।
यह विधि उन अनुप्रयोगों पर लागू नहीं होती है जो लॉग इन पर फिर से खोल दिए जाते हैं यदि "लॉग इन करते समय विंडो को फिर से खोलें" चेक किया गया हो।
10.9 और इससे पहले, आप उदाहरण के लिए चला सकते हैं
echo setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin|sudo tee -a /etc/launchd.conf
और फिर परिवर्तनों को लागू करने के लिए पुनः आरंभ करें।
/etc/paths
और /etc/paths.d/
केवल (या मुख्य रूप से) गोले पर लागू होते हैं। में लाइनों /etc/paths
और /etc/paths.d/*
से पथ से जुड़ जाते हैं path_helper , जिसमें से चलाया जाता है /etc/profile
, /etc/zshenv
और /etc/csh.login
। मुझे नहीं लगता कि गोले के अलावा कोई कार्यक्रम होगा जो विचार करेगा /etc/paths
या /etc/paths.d/
।
~/.MacOSX/environment.plist
10.8 में काम करना बंद कर दिया।
/etc/launchd.conf
10.10 में हटा दिया गया था।
launchctl setenv
। launchctl setenv
मौजूदा प्रक्रियाओं को कभी प्रभावित नहीं किया है।
बहुत आसान तरीका है। फ़ोल्डर में एक टेक्स्ट फ़ाइल रखें /etc/paths.d/
। इस पाठ फ़ाइल में, वांछित पथ और एक नई पंक्ति दर्ज करें। सबसे अच्छा तरीका प्रत्येक पथ के लिए एक नई फ़ाइल बनाना है।
मेरे सिस्टम पर, टेक्स्ट के साथ MySQL नामक एक फाइल है 'usr / लोकल / mysql / बिन' और एक नई लाइन।
आप फ़ाइल में पर्यावरण चर सेट करने में सक्षम हो सकते हैं /etc/launchd-user.conf
...
Mavericks में, मैं लाइन का उपयोग करके फ़ाइल में एक पर्यावरण चर को कॉन्फ़िगर करने में सक्षम था:
setenv TEST test
एक ताजा बूट के बाद, $TEST
/etc/launchd-user.conf से सेट किया जाता है।
संपादित करें
यह संभव है कि /etc/launchd.conf पर फ़ाइल का सिंटैक्स अमान्य है। क्या आप परीक्षा के लिए उस फ़ाइल की सामग्री पोस्ट कर सकते हैं?
मैं जो देख रहा हूं, उसमें /etc/launchd.conf में PATH चर सेट करना सामान्य रूप से काम कर रहा है। हालाँकि, launchd
कोई पैरामीटर विस्तार नहीं करता है । इसलिए, यदि आपके पास एक प्रविष्टि है setenv PATH $PATH:/usr/local/bin
, तो आपका परिणामी पथ " $PATH:/usr/local/bin
" पर ध्यान दिया जाएगा (ध्यान दें: PATH का मान नहीं , लेकिन पाठ "$ PATH")
मेरे सेवरिक्स पर, /etc/launchd.conf में "setenv PATH blablabla" जोड़कर रिबूट के बाद काम नहीं किया
इसलिए मैंने / आदि / रास्तों के अंत में अपना नया पथ जोड़ा, जिसने काम किया।
/etc/paths
इसमें वह सब कुछ है जो मैं चाहता हूं और फिर भी उदात्त अभी भी केवल मूल पथ देखता है। अगर मैं इसे टर्मिनल से चलाता हूं, तो यह काम करता है।
मैंने पाया कि सेटेन पेट अब भी मेरे लिए टर्मिनल और अनुप्रयोगों के लिए काम करता है, लेकिन शेल स्क्रिप्ट में टूट गया, सीधे क्लिक के माध्यम से लॉन्च किया गया या टर्मिनल से ओपन के साथ कहना, फाइंडर। यह बहुत अजीब है। अन्य पर्यावरण चर /etc/launchd.conf
काम में सेट ।
सीधे लॉन्च की गई शेल स्क्रिप्ट के लिए इसे ठीक करने के लिए, मैंने PATH सेटिंग को डुप्लिकेट किया ~/.bash_profile
।
संपादन /etc/paths.d
या उपयोग .bash_profile
ने मेरे लिए काम नहीं किया, हालाँकि जैसा कि किसी और से सुझाव दिया गया था (मैं वास्तव में यहाँ आया था उसके जवाब को प्रस्तुत करने के लिए, लेकिन मैं इसे फिर से नहीं पा सका!), मैंने संपादित किया /etc/paths
जो मेरे लिए काम करता है।
मेरे मामले में, मैंने एंड्रॉइड-टूल adb
और android
टर्मिनल कमांड को उनके sdk रास्तों की ओर इशारा करते हुए जोड़ा है ( adb
आजकल एक और निर्देशिका में चला गया है) जो देखने में ऐसा लगता है
/usr/local/bin
...
/Applications/adt-bundle-mac/sdk/platform-tools //new entries
/Applications/adt-bundle-mac/sdk/tools
SWEET, उस XML को ~ / लाइब्रेरी / LaunchAgents / setenv.SVN.plist में जोड़कर BBEdit को उन सबवर्सन बायनेरिज़ का उपयोग करने की अनुमति देता है जिन्हें मैंने / ऑप्ट में स्थापित किया था।
<clip>
<string>launchctl setenv PATH /opt/subversion/bin:$PATH</string>
<clip>
बस अपने 'बिन' (जिस पथ को आप जोड़ना चाहते हैं) / etc / पथ फ़ाइल में जोड़ें - रिबूट या रिलगिन !!!
sudo vi /etc/paths
(create a file (paths file) if it does't exist, I am using 'vi' editor, you can use your own as super user )
then, add your bin directory path like below
/usr/local/mysql/bin
/usr/local/apache-ant-1.9.3/bin
/usr/local/gradle-1.11/bin
फ़ाइल सहेजें और फिर से खोलें ... आशा है कि यह मदद करता है