मैं MANPATH या INFOPATH में एक निर्देशिका कैसे जोड़ूं?


19

मुझे लगता है कि मुझे PATH में एक निर्देशिका जोड़ने के लिए दिए गए निर्देशों को समझना चाहिए ? $ PATH में निर्देशिकाओं को जोड़ने के बारे में। लेकिन मुझे समझ में नहीं आता है कि $ MANPATH या $ INFOPATH के लिए निर्देशिका कैसे जोड़ें।

इसके अलावा - मदद के लिए चारों ओर घूमने में मैंने देखा है कि कभी-कभी निर्देश कहते हैं export PATH=/usr/share/lib/something:$PATHऔर कभी-कभी वे कहते हैं export PATH=$PATH:/usr/share/lib/something। यह किसका है?

जवाबों:


24
  1. ये 2 लगभग समान हैं:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    अंतर केवल इतना है कि पहला एक निर्देशिका को सामने रखता है और दूसरा इसे वर्तमान निर्देशिका में पीछे रखता है $PATH। यह केवल तभी मायने रखता है जब अंदर ऐसी आज्ञाएँ हों /usr/share/lib/somethingजिनमें निर्देशिकाओं में से किसी एक के अंदर एक ही नाम हो $PATH

  2. निर्देशिकाओं को जोड़ने के लिए $MANPATHया $INFOPATHआपके द्वारा पोस्ट किए गए लिंक से आवश्यक के रूप में, आप लिंक के अंदर कॉन्फ़िगर फ़ाइलों को बदलकर करते हैं।

    यह का वैश्विक संस्करण खोलने के लिए कहता है bash.bashrc:

    sudo vi /etc/bash.bashrc
    

    और अंत में जोड़ने के लिए:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    यह सेट $PATH, $MANPATHऔर $INFOPATH। और यह आपको इसके /etc/manpath.configसाथ संपादित करने के लिए भी कहता है :

    sudo vi /etc/manpath.config
    

    और जोड़ने के लिए

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    नीचे # set up PATH to MANPATH mapping


यदि आप इसके बारे में अनिश्चित हैं तो एक बैकअप 1 (कभी भी खराब न होने वाली) बनाएं:

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

अजीब तार वर्तमान तिथि में बदल जाता है। यदि आप गड़बड़ करते हैं तो मूल फ़ाइल पर वापस बैकअप कॉपी करें:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  

1
मैंने Ubuntu Precise पर टेक्सलाइव 2012 स्थापित किया और मेरे पास echo $MANPATHलौटा /usr/local/texlive/2012/texmf/doc/man। जब मैं कॉन्फ़िगरेशन बैश रिपोर्ट /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manऔर zsh अभी भी रिपोर्ट में पथ जोड़ता हूं /usr/local/texlive/2012/texmf/doc/man। Zsh के लिए मैं रास्तों को जोड़ता हूँ /etc/zsh/zshrc। मुझे यकीन नहीं है कि यह सही है। मैंने संपादन की कोशिश भी की /etc/environment, जैसा कि यहां बताया गया है , हालांकि सफलता के बिना।
JJD

@JJD - इस पोस्ट को भी देखें: कस्टम मदद / मैन-
sdaau

लिखने के बाद मैं क्या आदेश देख सकता हूं MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? मैंने कोशिश की man tlmgrऔर यह कहता है कि यह मौजूद नहीं है।
आर्टुरो

2

यदि आपके मैन पेज में हैं /usr/local/myproject/man, तो आपको बस इतना करना है कि (के अंत में) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHया $PATH:x:y:z?

बमुश्किल अलग। $PATHउन :जगहों की एक सूची है, जहां किसी प्रोग्राम के लिए बैश (शेल / टर्मिनल) की जांच करनी चाहिए।

उदाहरण के लिए यदि आप catजिस तरह से टर्मिनल को समझते हैं, इसका मतलब है कि पहले, दूसरे, तीसरे तत्वों के माध्यम से देखना है $PATH, तो पहले स्थान को बचाने के लिए बाद के इनवोकेशन के लिए cat

यदि मेरे पास दो अलग-अलग स्थानों में एक कार्यक्रम के दो अलग-अलग संस्करण हैं, जिनमें से एक को प्राथमिकता दी जा रही है, और $PATHशेल को गलत क्रम में खोज करने के लिए कहता है, तो समस्या है। नहीं तो कोई बात नहीं।


निर्यात

एक टर्मिनल खोलें और टाइप करें

echo $a
a=5
echo a
echo $a

आप देखेंगे कि a=5वैरिएबल मान सेट $aकरता है और वैरिएबल नाम को संदर्भित करता है, न कि वैल्यू।

एक दूसरा टर्मिनल खोलें और टाइप करें echo $a। यह फिर से खाली होना चाहिए।

exportऔर असाइनमेंट ( =) के बीच का अंतर यहां बताया गया है: /programming/1158091/defining-a-variable-with-or-without-export

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