PATH और LD_LIBRARY_PATH में क्या अंतर है?


27

मैं कुछ के बीच अंतर को समझने में कठिनाइयां आ रही हूँ PATHऔर LD_LIBRARY_PATH। यह करने के लिए किया जाना चाहिए: मुझे लगता है कि एक फ़ाइल pkg.tcl की जरूरत है एक अधिष्ठापन सेटअप है और मैं जहां नहीं यह करने के लिए पथ को जोड़ने के लिए कर रहा हूँ PATHया LD_LIBRARY_PATH?


आपकी स्थापना समस्या के बारे में, व्यक्तिगत रूप से मैं शर्त लगा सकता हूं TCLLIBPATH। क्षमा करें, मेरा कोई तर्क नहीं है। बस एक संकेत है।
मैनटवर्क

जवाबों:


30

यूनिक्स सिस्टम विभिन्न निर्देशिकाओं में फैली विभिन्न प्रकार की फाइलों के साथ व्यवस्थित होते हैं। उदाहरण के लिए, निष्पादनयोग्य निर्देशिका कहा जाता है में आम तौर पर कर रहे हैं bin( /bin, /usr/bin, /usr/local/bin, ...); ऐतिहासिक रूप से, binबाइनरी के लिए खड़ा था, क्योंकि निष्पादन योग्य बायनेरिज़ (मशीन कोड) हैं, लेकिन स्क्रिप्ट भी हो सकती हैं। चूंकि कई निर्देशिकाएं हैं जिनमें निष्पादक शामिल हैं, और यह मक्खी पर निर्देशिकाओं को जोड़ने और हटाने के लिए उपयोगी है (उदाहरण के लिए एक बहु-निष्पादन योग्य अनुप्रयोग का परीक्षण करने के लिए, आप इसे अस्थायी रूप से निष्पादनयोग्य के लिए खोज पथ में जोड़ते हैं), इसके लिए एक पर्यावरण चर है: PATH। जब आप किसी प्रोग्राम को उसका नाम देकर निष्पादित करते हैं, तो शेल इसे PATHचर में उल्लिखित निर्देशिकाओं में देखता है (यह निर्देशिकाओं की एक अलग-अलग सूची है)।

अन्य प्रकार की फ़ाइलों के लिए एक ही तंत्र मौजूद है जो कुछ प्रोग्राम नाम से खोज करने जा रहा है। यहाँ कुछ विशिष्ट PATH-प्रकार के चर हैं (ध्यान दें कि उदाहरण पथ जो मैं देता हूं वह ठीक वैसा नहीं है जैसा कि आप अपने सिस्टम पर पाएंगे, वहां 'सिर्फ एक विचार देने के लिए)।

  • PATH: निष्पादन योग्य (जैसे /home/username/bin:/usr/local/bin:/usr/bin:/bin)।
  • MANPATH: मैनुअल पेज (जैसे /usr/local/man:/usr/man)।
  • LD_LIBRARY_PATH: मूल कोड पुस्तकालयों (लिनक्स पर, इस चर के मूल्य के अलावा, देखने पथ आम तौर पर होता है /usr/local/lib, /usr/lib, /libऔर कुछ अन्य लोगों)। नाम डायनेमिक l oa d एरLD से आता है , सिस्टम घटक जो पुस्तकालयों को गतिशील रूप से जुड़े निष्पादनयोग्य में लोड करता है ।
  • PERL5LIB: पर्ल लाइब्रेरी (जैसे /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl)।
  • PYTHONPATH: अजगर पुस्तकालय (जैसे /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6)।
  • TCLLIBPATH: बंधन पुस्तकालय (जैसे /usr/local/lib/tcltk:/usr/lib/tcltk)।

इसलिए यदि आपका pkg.tclस्टैंडअलोन निष्पादन योग्य है, तो इसे निष्पादन अनुमति दें और इसे कहीं पर छोड़ दें $PATH। यदि यह TCL प्रोग्राम द्वारा लोड की गई TCL लाइब्रेरी है, तो इसे कहीं पर छोड़ दें $TCLLIBPATH


23

PATHनिष्पादन योग्य कार्यक्रमों की निर्देशिका निर्दिष्ट करने के लिए है। LD_LIBRARY_PATHपुस्तकालयों की निर्देशिका निर्दिष्ट करने के लिए उपयोग किया जाता है।


5
अन्य दृष्टिकोण से, PATHमुख्य रूप से शेल द्वारा उपयोग किया जाता है, जबकि LD_LIBRARY_PATHगतिशील लोडर (आमतौर पर ld-linux.so) द्वारा उपयोग किया जाता है ।
मैनटवर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.