Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

Direnv - Linux में प्रोजेक्ट-विशिष्ट पर्यावरण चर प्रबंधित करें

डायरेनव लिनक्स और मैकओएस जैसे यूनिक्स ऑपरेटिंग सिस्टम पर आपके शेल के लिए एक निफ्टी ओपन-सोर्स एक्सटेंशन है। इसे एकल स्थिर निष्पादन योग्य में संकलित किया गया है और यह bash . जैसे शेल का समर्थन करता है , zsh , टीसीएसएच , और मछली।

direnv . का मुख्य उद्देश्य ~/.profile . को अव्यवस्थित किए बिना परियोजना-विशिष्ट पर्यावरण चरों के लिए अनुमति देना है या संबंधित शेल स्टार्टअप फ़ाइलें। यह वर्तमान निर्देशिका के आधार पर पर्यावरण चर को लोड और अनलोड करने का एक नया तरीका लागू करता है।

इसका उपयोग 12factor . लोड करने के लिए किया जाता है ऐप्स (सॉफ़्टवेयर-ए-ए-सर्विस ऐप्स के निर्माण के लिए एक पद्धति) पर्यावरण चर, प्रति-प्रोजेक्ट पृथक विकास वातावरण बनाते हैं, और परिनियोजन के लिए रहस्य भी लोड करते हैं। इसके अतिरिक्त, इसका उपयोग rbenv . के समान बहु-संस्करण स्थापना और प्रबंधन समाधान बनाने के लिए किया जा सकता है , पायनेव, और phpenv

तो direnv कैसे काम करता है?

शेल के एक कमांड प्रॉम्प्ट को लोड करने से पहले, direnv .envrc . के अस्तित्व की जांच करता है वर्तमान में फ़ाइल (जिसे आप pwd कमांड का उपयोग करके प्रदर्शित कर सकते हैं) और मूल निर्देशिका। जाँच प्रक्रिया तेज़ है और प्रत्येक संकेत पर ध्यान नहीं दिया जा सकता है।

एक बार जब यह .envrc मिल जाता है उपयुक्त अनुमतियों के साथ फ़ाइल, यह इसे एक बैश उप-खोल में लोड करता है और यह सभी निर्यात किए गए चर को कैप्चर करता है और उन्हें वर्तमान खोल में उपलब्ध कराता है।

लिनक्स सिस्टम में direnv इंस्टाल करना

अधिकांश Linux वितरणों में, direnv जैसा कि दिखाया गया है, आपके सिस्टम पैकेज मैनेजर का उपयोग करके डिफ़ॉल्ट रिपॉजिटरी से स्थापित करने के लिए पैकेज उपलब्ध है।

$ sudo apt install direnv		#Debian,Ubuntu and Mint
$ sudo dnf install direnv		#Fedora

अन्य वितरण पर जैसे Red Hat Enterprise Linux (आरएचईएल ) और CentOS या कोई भी वितरण जो स्नैप का समर्थन करता है, आप उसे स्नैप . के रूप में स्थापित कर सकते हैं . इसके लिए आपको अपने सिस्टम पर स्नैपडील इंस्टाल करना होगा।

$ sudo snap install direnv

डिरेनव को अपने बैश शेल में कैसे शामिल करें

direnv . स्थापित करने के बाद , आपको इसे अपने वर्तमान Linux शेल में जोड़ने की आवश्यकता है। उदाहरण के लिए बैश . के लिए , ~/.bashrc . के अंत में निम्न पंक्ति जोड़ें फ़ाइल।

सुनिश्चित करें कि यह rvm . के बाद भी दिखाई दे , गिट-प्रॉम्प्ट , और अन्य शेल एक्सटेंशन जो प्रॉम्प्ट में हेरफेर करते हैं।

eval "$(direnv hook bash)"

ZSH शेल के लिए

~/.zshrc . के अंत में निम्न पंक्ति जोड़ें फ़ाइल:

eval "$(direnv hook zsh)" 

फिश शेल के लिए

~/.config/fish/config.fish . के अंत में निम्न पंक्ति जोड़ें फ़ाइल:

eval (direnv hook fish)

फिर सक्रिय टर्मिनल विंडो को बंद करें और एक नया शेल खोलें या फ़ाइल को दिखाए अनुसार स्रोत करें।

$ source ~/.bashrc
$ source  ~/.zshrc 
$ source ~/.config/fish/config.fish

लिनक्स शेल में direnv का उपयोग कैसे करें

यह प्रदर्शित करने के लिए कि कैसे direnv काम करता है, हम tecmint_projects . नामक एक नई निर्देशिका बनाएंगे और उसमें चले जाओ।

$ mkdir ~/tecmint_projects
$ cd tecmint_projects/

इसके बाद, चलिए एक नया वैरिएबल बनाते हैं जिसे TEST_VARIABLE . कहा जाता है कमांड लाइन पर और जब यह प्रतिध्वनित होता है, तो मान खाली होना चाहिए:

$ echo $TEST_VARIABLE

अब हम एक नया .envrc बनाएंगे फ़ाइल जिसमें बैश कोड है जिसे direnv . द्वारा लोड किया जाएगा . हम "TEST_VARIABLE=tecmint निर्यात करें पंक्ति जोड़ने का भी प्रयास करते हैं "इसमें इको कमांड और आउटपुट रीडायरेक्शन कैरेक्टर (>) . का उपयोग करके :

$ echo export TEST_VARIABLE=tecmint > .envrc

डिफ़ॉल्ट रूप से, सुरक्षा तंत्र .envrc . की लोडिंग को रोकता है फ़ाइल। चूंकि हम इसे एक सुरक्षित फ़ाइल जानते हैं, इसलिए हमें निम्न कमांड चलाकर इसकी सामग्री को स्वीकृत करने की आवश्यकता है:

$ direnv allow .

अब जबकि .envrc . की सामग्री फ़ाइल को लोड करने की अनुमति दी गई है, आइए TEST_VARIABLE के मान की जांच करें जिसे हमने पहले सेट किया था:

$ echo $TEST_VARIABLE

जब हम tecmint_project से बाहर निकलते हैं निर्देशिका, direnv अनलोड किया जाएगा और यदि हम TEST_VARIABLE . के मान की जांच करते हैं एक बार फिर, यह खाली होना चाहिए:

$ cd ..
$ echo $TEST_VARIABLE
Direnv - Linux में प्रोजेक्ट-विशिष्ट पर्यावरण चर प्रबंधित करें

हर बार जब आप tecmint_projects . में जाते हैं निर्देशिका, .envrc फ़ाइल को निम्न स्क्रीनशॉट में दिखाए अनुसार लोड किया जाएगा:

$ cd tecmint_projects/
Direnv - Linux में प्रोजेक्ट-विशिष्ट पर्यावरण चर प्रबंधित करें

किसी दिए गए .envrc . के प्राधिकरण को निरस्त करने के लिए , अस्वीकार करें . का उपयोग करें आदेश।

$ direnv deny .			#in current directory
OR
$ direnv deny /path/to/.envrc

अधिक जानकारी और उपयोग के निर्देशों के लिए, direnv . देखें मैन पेज:

$ man direnv

इसके अतिरिक्त, direnv stdlib . का भी उपयोग करता है (direnv-stdlib ) कई कार्यों के साथ आता है जो आपको आसानी से अपने PATH . में नई निर्देशिका जोड़ने की अनुमति देता है और भी बहुत कुछ करें।

सभी उपलब्ध कार्यों के लिए दस्तावेज़ खोजने के लिए, direnv-stdlib . देखें मैन्युअल प्रविष्टि पृष्ठ:

$ man direnv-stdlib

हमारे पास आपके लिए बस इतना ही था! यदि आपके पास हमसे साझा करने के लिए कोई प्रश्न या विचार हैं, तो नीचे दिए गए फ़ीडबैक फ़ॉर्म का उपयोग करें।


  1. शेल स्क्रिप्टिंग भाषा में लिनक्स "चर" की एक अंतर्दृष्टि - भाग 9

    हम पहले ही Linux Shell Scripting . पर लेखों की एक श्रृंखला लिख ​​चुके हैं जिसका उस समय गर्मजोशी से स्वागत किया गया था और यह अब भी काफी प्रासंगिक था। शेल स्क्रिप्टिंग पर लेखों के संग्रह का लिंक यहां दिया गया है। लिनक्स शैल स्क्रिप्टिंग सीखें यहां इस लेख में हम चर . देखेंगे , इसका निष्पादन और शेल स

  1. रूबी में पर्यावरण चर का उपयोग कैसे करें?

    पर्यावरण चर एक कुंजी/मान युग्म है, यह इस तरह दिखता है: KEY=VALUE हम आपके कंप्यूटर के सभी प्रोग्रामों के बीच कॉन्फ़िगरेशन विकल्पों को साझा करने के लिए इन चरों का उपयोग करते हैं। इसलिए यह सीखना महत्वपूर्ण है कि वे कैसे काम करते हैं और ENV का उपयोग करके अपने रूबी कार्यक्रमों से उन्हें कैसे एक्सेस क

  1. Windows 10 में पर्यावरण चर कैसे सेट करें

    पर्यावरण चर वैश्विक मान हैं जिनका उपयोग आपके पीसी पर चल रहे कार्यक्रमों को कॉन्फ़िगर करने के लिए किया जाता है। हालांकि वे तकनीकी रूप से ध्वनि करते हैं, वे वास्तव में विभिन्न ऐप्स को जोड़ने के लिए एक साझा कॉन्फ़िगरेशन स्टोर हैं। पर्यावरण चर अलग-अलग उपयोगकर्ता खातों से जुड़े होते हैं, इसलिए अलग-अलग उ