/ / पुनः लोड करें। Vagrant प्रावधान के दौरान

Vagrant प्रावधान के दौरान .bashrc पुनः लोड करें - bash, vagrant, rbenv

मैं वैग्रंट के लिए शेल प्रोविज़निंग का उपयोग कर रहा हूं, और रेंबव के साथ रेल स्थापित करने की कोशिश कर रहा हूं।

इस गाइड के बाद:

https://gorails.com/setup/ubuntu/14.04

मैं इस काम की स्क्रिप्ट पर आ गया हूं

# Update sources:
whoami
sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev curl git-core sqlite3 libsqlite3-dev git libssl-dev


#install rbenv and Ruby 1.9.2
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo "export PATH="$HOME/.rbenv/bin:$PATH"" >> ~/.bashrc
echo "eval "$(rbenv init -)"" >> ~/.bashrc
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
sudo mkdir /usr/local/share/ruby-build
~/.rbenv/plugins/ruby-build/install.sh
~/.rbenv/bin/rbenv install 2.1.2
~/.rbenv/bin/rbenv global 2.1.2

उपरोक्त गाइड का उपयोग करता है exec $SHELL $ पेट में rbenv जोड़ने के लिए। मेरे पास वह आदेश है, bash, source .bashrc, और अधिक। या तो वे $ PATH वैरिएबल को रिफ्रेश नहीं करते हैं, या वे प्रोविजनिंग स्क्रिप्ट से जल्दी बाहर निकल जाते हैं। इसलिए अभी मुझे rbenv को इसके पूरे रास्ते से बुलाना है। क्या बैश को फिर से लोड करने का कोई तरीका है, ताकि मैं $ PHH को रीफ्रेश कर सकूं। वैग्रेन्ट प्रोविजनिंग स्क्रिप्ट?

उत्तर:

जवाब के लिए 0 № 1

क्या न करने का कुछ कारण है export PATH="$HOME/.rbenv/bin:$PATH" के रूप में अपनी स्क्रिप्ट में है? जो वर्तमान सत्र के लिए आपके वातावरण को संशोधित करेगा। वैकल्पिक रूप से, यह चाहिए उपयोग करने के लिए काम करते हैं source ~/.bashrc आपकी स्क्रिप्ट में प्रासंगिक फ़ाइल में संलग्न होने के बाद ... यदि वह कार्य नहीं करता है, तो कुछ अजीब हो रहा है।

ध्यान दें कि बैश सिर्फ आम तौर पर पढ़ा नहीं जाता है।स्टार्टअप पर bashrc फ़ाइल। यह विशिष्ट मामले में ऐसा करता है कि यह अंतःक्रियात्मक रूप से शुरू होता है और लॉगिन शेल के रूप में नहीं। बैश के अधिकांश प्रोग्रामेटिक इनवॉइस गैर-संवादात्मक होंगे। आप गैर-संवादात्मक आह्वान पर पढ़ने के लिए बैश के लिए एक फ़ाइल निर्दिष्ट कर सकते हैं BASH_ENV शेल को लागू करने से पहले पर्यावरण चर।