2014-11-19 7 views
7

के साथ प्रावधान खोल स्क्रिप्ट से अद्यतन करें। मैं व्रग्रेंट के साथ एक नया उदाहरण लॉन्च करते समय प्रावधान शेल स्क्रिप्ट से मेरी होम निर्देशिका में .bashrc में कुछ अतिरिक्त लाइन जोड़ने की कोशिश कर रहा हूं।अद्यतन करें। Vashrc Vagrant

खोल स्क्रिप्ट में मेरे पास है: पूरा होने के लिए कुछ भी नहीं

set -x 

sudo apt-get update 

sudo apt-get install vim 

echo "source /usr/local/share/chruby/chruby.sh">> ~/.bashrc 
echo "source /usr/local/share/chruby/auto.sh">> ~/.bashrc 

हालांकि बाद .bashrc के लिए लिखा गया है।

यह पूर्ण स्क्रिप्ट का एक कट डाउन संस्करण है जिसका इरादा रूबी/रेल स्थापित करना है।

+0

bashrc फ़ाइल के अतिरिक्त के बीच एक डीबग गूंज जोड़ें, मेरा सबसे अच्छा अनुमान है कि आपकी स्क्रिप्ट किसी भी तरह से नियंत्रण संरचना के कारण इसे छोड़ देती है। – ShellFish

+0

मुझे stdout में निम्न मिलता है जब बैश स्क्रिप्ट उन पंक्तियों को मार रही है जो .bashrc में गूंजने का प्रयास कर रहे हैं, वे दौड़ रहे हैं - क्या यह संभव है कि उन्हें एक .bashrc फ़ाइल में प्रतिबिंबित किया जा रहा है जो घर/घर में नहीं है/योनि? ==> डिफ़ॉल्ट: ++ गूंज 'स्रोत /usr/local/share/chruby/chruby.sh' ==> डिफ़ॉल्ट: ++ गूंज 'स्रोत /usr/local/share/chruby/auto.sh' ==> डिफ़ॉल्ट: ++। /root/.bashrc ==> डिफ़ॉल्ट: +++ '[' -z '' ']' ==> डिफ़ॉल्ट: +++ वापसी –

+0

यदि वे हैं तो आप आसानी से '~' को बदलकर इसे से बच सकते हैं '/' से पूरा पथ? – ShellFish

उत्तर

16

आपको फ़ाइल को पूरा पथ देने की आवश्यकता है।

उदा।

echo "source /usr/local/share/chruby/chruby.sh" >> /home/vagrant/.bashrc 
+1

यह सही उत्तर है कि एक दर्जन अन्य SO धागे नहीं हैं। ~ योनि प्रावधान चलाने के दौरान जाहिर तौर पर अपेक्षित रूप से हल नहीं होता है। – jpwynn

+0

ऐसा इसलिए है क्योंकि प्रावधान रूट के रूप में चल रहा है, '~' '/ root' को संदर्भित करता है,'/home/vagrant' –

+0

में मुझे निम्न त्रुटि है//root/home/vagrant/.bashrc: ऐसी कोई फ़ाइल या निर्देशिका नहीं है – Kosmetika

-2

अपनी पिछली 2 लाइनों के लिए इसे आजमाएं - यह आपको वही चाहिए जो आपको चाहिए।

echo "source /usr/local/share/chruby/chruby.sh" >> /home/vagrant/.bashrc 

echo "source /usr/local/share/chruby/auto.sh" >> /home/vagrant/.bashrc 
+0

'स्रोत' स्क्रिप्ट की लाइनों को आजमाएगा और निष्पादित करेगा। – philbrooksjazz

+0

यह दो फाइलों को जोड़ देगा, जो मैं बाद में हूं .bashrc के अंत में "स्रोत /usr/local/share/chruby/chruby.sh" पंक्ति जोड़ रहा है ताकि जब मैं बैश खोलूं तो यह निष्पादित हो जाए। यहां दिए गए चरणों के अनुसार - http://ryanbigg.com/2014/10/ubuntu-ruby-ruby-install-chruby-and-you// –

+0

ठीक है - अब मैं समझता हूं कि आप क्या करने की कोशिश कर रहे हैं। यदि आप शेल कंसोल से उस पंक्ति को टाइप करते हैं - क्या यह काम करता है? मैंने इसे दोनों तरीकों से आजमाया और यह ठीक काम करता है। "~ /" के बजाय, पूर्ण पथ नाम का उपयोग कर लक्ष्य .bashrc को सेट करने का प्रयास करें। मुझे लगता है कि उपरोक्त मेरा समाधान वही काम करेगा, लेकिन मैं सहमत हूं कि bashrc – philbrooksjazz

-1

.bashrc को

if [ -f /usr/local/share/chruby/chruby.sh ]; then 
    . /usr/local/share/chruby/chruby.sh 
fi 

यह .bashrc में स्क्रिप्ट शामिल टेक्स्ट रूप जाएगा और यह निष्पादित जब एक नया खोल खोलने ये पंक्तियां जोड़ें।

+0

को अव्यवस्थित कर देगा मैं मैन्युअल रूप से लाइनों को जोड़ना नहीं चाहता - मैं उन्हें एक शेल स्क्रिप्ट के माध्यम से जोड़ना चाहता हूं। –

+0

मुझे आपकी टिप्पणी समझ में नहीं आ रही है। इन लाइनों को .bashrc में जोड़ें और स्क्रिप्ट chruby.py को एक नया खोल खोलने पर निष्पादित किया जाना चाहिए ... मेरा उत्तर आपको chruby.sh से लाइनों की प्रतिलिपि बनाने और किसी भी तरह से .bashrc में पेस्ट करने का सुझाव नहीं देता है .. यदि आप सुनिश्चित हैं कि फ़ाइल मौजूद है तो आप अपनी स्क्रिप्ट में 'echo "डाल सकते हैं। /usr/local/share/chruby/chruby.sh" >> ~/.bashrc'। – ShellFish

संबंधित मुद्दे