योनि पर प्रावधान के दौरान नोड स्थापित किया गया है, लेकिन ssh से कनेक्ट होने पर गायब हो जाता है


1

मैं वास्तव में इससे बीमार हो रहा हूं और मुझे नहीं पता कि क्या गलत है। मैं Vagrant 1.7.2 , Ubuntu 13.04 , Virtual Box 4.3 12 r93733 का उपयोग कर रहा हूं

मेरी होस्ट मशीन विंडोज 8.1 है

यहाँ मेरा बूट बूटस्ट्रैप स्क्रिप्ट मेरे बूटस्ट्रैप.श पर पाया गया है

echo "--- Installing Node.js ---"
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 0.12
nvm use 0.12
sudo cp ~/.nvm/versions/nodejs/v0.12/bin/node /bin/node

echo "--- Install node app dependencies --"
cd /var/www/html/node
npm install express
npm install youtube-audio-stream

प्रोविजनिंग के दौरान मैं देख सकता था कि नोड सही ढंग से स्थापित है। मैं अब नोड v0.12 का उपयोग करके देख सकता था । मैं यह भी देख सकता था कि npm स्थापित सफल रहे हैं

हालांकि जब मैं योनि ssh का उपयोग कर कनेक्ट करता हूं । मुझे नो कमांड 'एनवीएम' मिला । और कार्यक्रम 'नोड' निम्नलिखित संकुल में पाया जा सकता है :। मैंने भी ~ / .nvm / निर्देशिका की जाँच की , यह मौजूद नहीं है।

यह भी अजीब हो जाता है। इसलिए जब मैं ssh पर होता हूं, मैं स्क्रिप्ट को फिर से पुन: प्रसारित करता हूं। तब nvm अब सही ढंग से स्थापित है और मैं नोड का उपयोग कर सकता हूं।


क्या स्क्रिप्ट को सामान्य उपयोगकर्ता मोड, sudo या रूट में चलाया जा रहा है?
कोई समय

जवाबों:


3

खैर, मैंने पाया कि यह कैसे करना है। और बहुत आसान है (मेरे द्वारा कहे गए तरीके से आसान है)।

संक्षेप में, इन चरणों का पालन करें:

  1. सामान्य उपयोगकर्ता के रूप में चलने के लिए वैग्रांटफाइल सेट करें:

    config.vm.provision "shell", path: "provision.sh", privileged: false
    
  2. अपनी प्रावधान फ़ाइल के अंदर, यह करें:

    curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash
    source $HOME/.nvm/nvm.sh
    

उपरोक्त आदेश, पहले, जीथब क्रिएक्सिक्स से एनवीएम स्थापित करें, और नोड और एनपीएम स्थापित करने के लिए एनवीएम कमांड का उपयोग करने के प्रावधान को सक्षम करने के लिए शेल को रिफ्रेश करें।

  1. फिर, आप बस ऐसा करें:

    nvm install stable
    nvm alias default stable
    

'स्थिर' हमेशा नोड का नवीनतम स्थिर संस्करण होगा। इसलिए यदि आप एक विशेष संस्करण चाहते हैं, तो बस 'स्थिर' को उस संस्करण में बदल दें जिसकी आपको आवश्यकता है।

दूसरी पंक्ति, जहां आप nvm उपनाम टाइप करते हैं, बस nvm को बता रहे हैं कि इसे आपके द्वारा पारित संस्करण को डिफ़ॉल्ट रूप से उपयोग करने की आवश्यकता है। तब nvm को पता चलेगा कि nvm नोड और npm के कमांड को चलाने के लिए नोड के किस संस्करण को कॉल करेगा।

यहाँ स्पष्ट करने के लिए djheru को श्रेय https://stackoverflow.com/a/26691455


2

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

इसके अलावा, आप NVM के पुराने संस्करण का उपयोग कर रहे हैं।

sudo su vagrant -c 'curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash'
sudo su vagrant -c '. ~vagrant/.nvm/nvm.sh;nvm install v0.12'
sudo su vagrant -c '. ~vagrant/.nvm/nvm.sh;nvm use v0.12'

1

इस तरह से मैंने इसे हल किया है। मैंने अभी तक आपके उत्तरों की कोशिश नहीं की है इसलिए मैं किसी को भी स्वीकार नहीं कर सकता, लेकिन यह मेरे लिए काम कर रहा है।

git clone https://github.com/creationix/nvm.git /home/vagrant/.nvm && cd /home/vagrant/.nvm && git checkout `git describe --abbrev=0 --tags`
source /home/vagrant/.nvm/nvm.sh
nvm install 0.12
nvm use 0.12
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

0

सबसे पहले मुझे यह कहना होगा कि मेरा उत्तर पूर्ण उत्तर नहीं है इसलिए इसे ध्यान से पढ़ें।

यदि आपकी Vagrantfile प्रावधान को रूट के रूप में चला रही है, तो आपको जांचने की आवश्यकता है। यदि ऐसा है, तो आपको सामान्य उपयोगकर्ता की तरह उपयोग करने के लिए बदलना होगा:

config.vm.provision "shell", path: "provision.sh", privileged: false

आपके privileged: falseलिए यह परिवर्तन करेगा।

आगे, आपको github से nvm स्थापित करने के लिए कमांड के बाद शेल को रिफ्रेश करना होगा:

curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash
source $HOME/.nvm/nvm.sh

आपके source $HOME/.nvm/nvm.shलिए यह काम करेगा। आप इस कमांड को अपनी .bashrc फ़ाइल में, $HOME/.bashrcआवारा में संलग्न कर सकते हैं ।

दुखद बात यह है कि आपको नोड और एनपीएम के कुछ पर्यावरण चर का निर्यात करने की आवश्यकता होगी और कमांड को अंदर डाल दें। बहुत अधिक जब आप एसएचएस के माध्यम से योनि में प्रवेश करते हैं तो आप नोड और एनपीएम कमांड का उपयोग करने में सक्षम होंगे, लेकिन मुझे नहीं पता है अभी तक यह करने के लिए सही आदेश, यही कारण है कि मैं यहाँ hehehe अंत ...

ओह, और .bashrc में कमांड जोड़ने के बाद, आपको शेल को रिफ्रेश करने की आवश्यकता है:

source $HOME/.bashrc

खैर, अब मुझे सिर्फ यह पता लगाने की आवश्यकता है कि इस कार्य को पूरा करने के लिए nvm के साथ नोड स्थापित करते समय चर कैसे निर्यात करें ...

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