मैं direnv सलाह देते हैं । यह शेल के लिए एक पर्यावरण स्विचर है।
प्रत्येक संकेत से पहले यह वर्तमान और मूल निर्देशिका में ".envrc" फ़ाइल के अस्तित्व की जाँच करता है। यदि फ़ाइल मौजूद है (और अधिकृत है), इसे बैश सब-शेल में लोड किया गया है और सभी निर्यात किए गए वेरिएबल्स को फिर direnv द्वारा कैप्चर किया गया है और फिर वर्तमान शेल उपलब्ध कराया गया है।
यहां रूबी-इंस्टॉल के साथ डेरेनव का उपयोग करने का तरीका बताया गया है
+ रूबी-स्थापित
इस में जोड़ें ~/.direnvrc
use_ruby() {
local ruby_root=$HOME/.rubies/$1
load_prefix "$ruby_root"
layout_ruby
}
माणिक-स्थापित करें ( brew install ruby-install
) और माणिकों का एक समूह स्थापित करें।
ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0
और फिर सुविधा के लिए सहानुभूति का एक जोड़ा बनाएं:
ln -s .rubies/1.9 ruby-1.9.3-p*
ln -s .rubies/2.0 ruby-2.0.0
ln -s .rubies/2.2 ruby-2.2.0
और अंत में किसी भी परियोजना में .envrc
:
use ruby 2.0
यह सभी रत्नों को परियोजना की .direnv/ruby
निर्देशिका के तहत लाएगा (रत्नों को खोलना आसान बनाता है)। बंडलर रैपर बायनेरीज़ .direnv/bin
(और नहीं bundle exec
!) में डालेंगे ।
+ राबनेव
use rbenv
किसी भी .envrc
फाइल में कमांड जोड़कर rbenv का उपयोग करना संभव है । यह rbenv को सक्रिय करेगा जो बदले में PATH में माणिक आवरण डाल देगा।
ध्यान दें कि इसके लिए काम करने के लिए .bashrc या .shshrc में rbenv इंस्टॉल करना आवश्यक नहीं है।
+ आरवीएम
यहाँ सबसे जटिल .envrc है जिसका उपयोग मैं रूबी परियोजनाओं पर करता हूँ:
rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin
rvm का उपयोग आपके लिए सही माणिक संस्करण का चयन करने के लिए किया जाता है
लेआउट कमांड स्वचालित रूप से कुछ सामान्य पर्यावरण चर निर्धारित करते हैं। अभी के लिए केवल रूबी लेआउट मौजूद है। यह क्या करता है GEM_HOME पर्यावरण चर सेट है और यह आपके पथ के लिए बिन निर्देशिका है। क्योंकि यह रूबी संस्करण पर निर्भर करता है, इसे "आरवीएम" के बाद कॉल करना सुनिश्चित करें। चूंकि प्रत्येक रूबी लेआउट निर्देशिका का अपना GEM_HOME है, इसलिए आपको rvm के रत्नों का उपयोग करने की आवश्यकता नहीं है।
PATH_add दिए गए सापेक्ष पथ का विस्तार और विस्तार करता है। उस मामले में, मैं इसका उपयोग अपनी खुद की बिन स्क्रिप्ट से बंडल बस्टबिन को अलग करने के लिए करता हूंbundle install --binstubs .direnv/bundler-bin
यदि आप यह जानना चाहते हैं कि वे आदेश वास्तव में क्या करते हैं, तो अब: बिल्ली direnv stdlib
| कम से