मेरे रास्ते में निष्पादन योग्य फ़ाइलों को जोड़ने के लिए /etc/paths.d का उपयोग कैसे करें?


15

मैं अपने पथ चर में एक निष्पादन योग्य जोड़ने के लिए /etc/paths.d का उपयोग करने का प्रयास कर रहा हूं लेकिन मुझे अब तक कोई सफलता नहीं मिली है।

निष्पादन योग्य फ़ाइल का पूर्ण पथ है: /opt/ImageMagick/bin/convert

/etc/paths.d में दो फ़ाइलें हैं: 40-XQuartz और ImageMagick

40-XQuartz में एक पंक्ति होती है: /opt/X11/bin
ImageMagick में एक पंक्ति होती है:/opt/ImageMagick/bin

मेरा echo $PATHदेता है:

/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

तो ऐसा लगता है कि केवल पहली फ़ाइल (40-XQuartz) ही अपना काम करती है। दो फ़ाइलों (40-XQuartz और ImageMagick) की अनुमतियाँ बिल्कुल समान हैं, इसलिए मेरा सवाल है कि पहला काम क्यों करता है और दूसरा नहीं।

मैं OS X Mavericks चला रहा हूं।


आप किस खोल का उपयोग करते हैं? / Etc / रास्तों के बारे में क्या है?
मैक्स राइड

/etc/paths.dमेरे लिए काम करने के लिए कड़ी जोड़ना , लेकिन मैं जो भी टर्मिनल एप्लिकेशन का उपयोग कर रहा हूं (मेरे मामले में ITerm2) प्रभावी होने के लिए नए रास्ते के लिए
user1256923

जवाबों:


17

क्या आपने ImageMagick के लिए नई फ़ाइल जोड़ने के बाद एक नया लॉगिन शेल शुरू किया है? से पथ की स्थापना paths.dप्रविष्टियों में किया जाता है /etc/profileऔर /etc/csh.login, इसलिए आप नई प्रविष्टियों को प्रभावी करने के लिए एक नया खोल शुरू करने के लिए की जरूरत है।

OS X path_helperफ़ाइलों के आधार पर पथ को सेट करने के लिए उपयोग करता है /etc/paths.d- आप हमेशा इसे मैन्युअल रूप से कॉल कर सकते हैं (यहां एक बॉर्न-जैसा शेल मानकर):

$ eval `/usr/libexec/path_helper -s`

बेशक मैंने एक नया शेल शुरू किया है। मैंने अपना मैक फिर से शुरू कर दिया है।
स्कीबॉक्स

नए लॉगिन शेल ने मेरे लिए काम किया
incandescentman

3

चल रहा है

echo /opt/ImageMagick/bin|sudo tee /etc/paths.d/ImageMagick;bash -l;echo $PATH

कहते हैं /opt/ImageMagick/binकरने के लिए PATHमेरी स्थापना पर।

क्या आप PATHकिसी अन्य स्थान पर ओवरराइड कर रहे हैं जैसे ~/.bash_profile?

रास्तों में /etc/paths.d/से पथ से जुड़ जाते हैं /usr/libexec/path_helper, जिसमें से चलाया जाता है /etc/profile, /etc/zsh.envऔर /etc/csh.loginpath_helperग्राफिकल एप्लिकेशन द्वारा नहीं चलाया जाता है या जब बैश को गैर-लॉगिन शेल के रूप में लागू किया जाता है।

आपको एक डिफ़ॉल्ट सेट कर सकते हैं PATHमें /etc/launchd.conf:

  1. उदाहरण के लिए भागो setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf
  2. या तो फिर से शुरू करें, या launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.confफिर चलाएं और फिर से शुरू करें।

मैं पथ को बदलना पसंद करता हूं /etc/launchd.conf, क्योंकि यह उन कार्यक्रमों को भी प्रभावित करता है जो शेल से शुरू नहीं होते हैं, जैसे टेक्स्ट एडिटर्स और लॉन्च जॉब्स द्वारा शुरू किए गए प्रोग्राम।


0

बहुत बढ़िया, मैं बस अपने मैक में ImageMagic को जोड़ने के साथ खेल रहा था। न केवल आपको ImageMagick/binअपनी ज़रूरत है PATH, आपको एक पर्यावरण चर सेट की भी आवश्यकता है, या इसमें जोड़ा गया है:

परीक्षण करने के लिए आप इसे स्वयं बना सकते हैं:

export DYLD_LIBRARY=".:/opt/ImageMagic/lib"

मैक ओएस के लिए एक पर्यावरण चर स्थापित करने के लिए जानकारी यहां पाई जा सकती है, ओएस एक्स में पर्यावरण चर स्थापित करना?

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