2008-12-07 6 views
6

तो मुझे ओएस एक्स तेंदुए पर पथ समस्या है। ऐसा लगता है कि ओएस एक्स अन्य पथ जोड़ रहा है जो मैं नहीं कह रहा हूं और यह मेरी पथ प्राथमिकता के साथ गड़बड़ कर रहा है। मेरे पास केवल .bash_login फ़ाइल है, मेरे पास .bashrc या एक .profile फ़ाइल नहीं है।उन ओएस एक्स टर्मिनल के लिए पैथ घोषणाओं की विभिन्न फाइलें क्या हो सकती हैं?

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 

जब मैं निर्यात चलाने इस मार्ग यह रिटर्न है:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" 

क्या वहाँ में डाल जा सकता है/usr/bin पर कोई भी विचार है और मैं कैसे मिल सकता है मेरे .bash_login फ़ाइल जैसे है /usr/local/bin उच्च प्राथमिकता के लिए।

मैं इसे रेल के लिए भी टैग कर रहा हूं क्योंकि यह अभी मैं काम कर रहा हूं ... ऐसा लगता है कि मैक निर्मित रूबी, रेल और रत्न /usr/local/bin पर स्थापित किए गए पर प्राथमिकता ले रहे हैं, यह पता लगाया कि आप साथी रूबीस्ट भी मदद कर सकते हैं।

उत्तर

17

आप इन दो निर्देशिका के अंदर देखा है:

/etc/paths.d/ 
/etc/manpaths.d 

किसी भी पथ उन निर्देशिकाओं की फ़ाइलें में परिभाषित पथ चर करने के लिए स्वचालित रूप से संलग्न हो - मैं ज्यादातर में तीसरे पक्ष के स्थापित अनुप्रयोगों डाल करने के लिए उन दो निर्देशिकाओं का उपयोग पथ। /etc/profile की सामग्री को देखते हुए, मैं देख सकता हूँ कि path_helper पहले निष्पादित किया जाता है: इसके अलावा, ओएस एक्स पर path_helper का आदमी पृष्ठ पर एक नज़र

संपादित है। path_helper के लिए मैन पेज कहता है कि /etc/paths.d/ और /etc/manpaths.d/ निर्देशिकाओं में फ़ाइलों को पढ़ने से पहले, path_helper/etc/paths और /etc/manpaths फ़ाइलों में परिभाषित पथ को पढ़ता है और सेट करता है। आप क्या पथ में सेट के रूप में देख रहे हैं के आधे के लिए उन खाता

$ cat /etc/paths 
/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/bin 

और, मुझे विश्वास है,: /etc/paths पर एक नजर इस का पता चलता है।

+0

फ़ाइल से बाहर निकल जाएगा धन्यवाद, कम से कम मुझे बताया कि X11 और गिट पथ कैसे जोड़े जा रहे थे। अभी भी अन्य वस्तुओं के लिए शिकार पर। –

+0

@ टिम के: मेरे उत्तर का संपादन जो मुझे अन्य वस्तुओं के लिए खातों पर विश्वास करना है। – ayaz

+0

कमाल! आपको बहुत - बहुत धन्यवाद! –

4

ऐसा लगता है कि आपके परिवर्तन लागू नहीं किए जा रहे हैं। नोट नंबर/usr/local/mysql/bin

INVOCATION पर बैश मैनपेज अनुभाग पढ़ें, .bash_login केवल तभी पढ़ा जाता है जब यह लॉगिन खोल हो - जो टर्मिनल खोल नहीं है। आपको इसके बजाय ~/.bashrc में रखना होगा। इसे लॉग इन और गैर-लॉगिन शैल के लिए पढ़ा जाएगा।

+0

+1 अभी तक काम कर यह नहीं है - लेकिन आदमी पेज मुझे एक शुरुआत ब्रायन धन्यवाद देता है। मैं सोच रहा हूं कि बैशक लोड करने के लिए एक पूर्ण लॉगऑफ आवश्यक है या नहीं? –

+0

क्या आपने "स्रोत .bashrc" को आजमाया है क्योंकि यह आदेश – Lodle

0

मैं भी पर एप्पल के समर्थन मंचों एक दिलचस्प लेख का सामना करना पड़ा:

.bash_login no longer executed

कि जानकारी मैं एक अनदेखी खाली .bash_profile फ़ाइल है कि मुझे लगता है कि लोड हो रहा है था पाया साथ

- और के सभी की हत्या जानकारी मैं अपने रास्ते में सेट करने की कोशिश कर रहा था।

तो मुझे लगता है कि ऐसा लगता है कि स्थिति के आधार पर हमारे पास कई "सही" उत्तर हो सकते हैं।

+0

मैं जो करता हूं वह सभी उपयोगकर्ता-विशिष्ट BASH प्रारंभिक सामग्री को ~/.bashrc में टॉस करना है, और ~/.bash_profile में स्रोत ~/.bashrc में एक पंक्ति डालें। – ayaz

0

बस .bashrc या .login में डाल दिया और आप ठीक

1

तुम भी ~/.MacOSX/पर्यावरण में सामान रख सकते हैं हो जाएगा।plist, जैसा कि https://web.archive.org/web/20150330034300/http://www.astro.washington.edu/users/rowen/AquaEnvVar.html

यह पर्यावरण चर वैरिएबल को सभी अनुप्रयोगों के लिए उपलब्ध कराएगा, न केवल टर्मिनल (बैश) सत्र के माध्यम से शुरू किया गया है।

(लगता है कहीं कोई बेहतर सुझाव है कि वहाँ अब भी)

+0

क्षमा करें, संसाधन चले गए .... – maycca

संबंधित मुद्दे