nvm कमांड बैश स्क्रिप्ट में उपलब्ध नहीं है


39

मैं एक स्क्रिप्ट बनाने की कोशिश कर रहा हूं जिसमें nvmऔर आखिरकार नोड स्थापित हो जाएगा।
मैंने nvmcURL के साथ स्थापित किया है। मैं .profileया .bashrcफ़ाइल (दोनों काम) में संशोधन देखता हूं और nvmबैश प्रॉम्प्ट पर टाइप करते समय, यह उपलब्ध विकल्पों आदि को दिखाता है।
इसलिए nmm काम करता है। मैन्युअल रूप से मैं नोड स्थापित कर सकता हूं, लेकिन जैसे ही मैंने nvmकमांड को शेल स्क्रिप्ट में रखा:

nano test.sh

#!/bin/bash
nvm

और इसे चलाएं:

chmod 755 test.sh
./test.sh

मुझे मिला:

./test.sh: line 2: nvm: command not found

अगर यह नहीं मिल सकता है nvm, तो मुझे भी सोचने की जरूरत नहीं है

nvm ls-remote 

या

nvm install ...

मुझे Ubuntu 14.04 स्थापित मिला और बैश मेरा शेल है।


मैं nvm पर कॉल करने से पहले स्क्रिप्ट में पथ प्रिंट करूंगा और जांच करूंगा कि यह सही है या नहीं।
एपीग्रामग्राम

जवाबों:


69

nvmकमांड एक शेल फ़ंक्शन है जिसमें घोषित किया गया है ~/.nvm/nvm.sh

उपलब्ध कराने के लिए आप निम्न स्क्रिप्ट में से किसी एक को स्रोत बना nvm()सकते हैं:

. ~/.nvm/nvm.sh
. ~/.profile
. ~/.bashrc
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew

धन्यवाद। यह तब समझ में आता है जब nvm ~ / .nvm में "स्थापित" है। और शायद सिर्फ एक शेल स्क्रिप्ट है। हालांकि मुझे जो याद आ रहा है वह यह है कि मैं nvm टाइप कर सकता हूं और काम करने के लिए इसे प्राप्त कर सकता हूं, लेकिन जब शेल स्क्रिप्ट को ~ / .nvm में आज़माते हैं तो यह काम नहीं करता है।
ओकीदोकी

आपका क्या मतलब है trying the shell scripts in ~/.nvm? मैंने समझाया कि nvmऊपर की शेल स्क्रिप्ट से कैसे चला जाए । क्या कुछ अस्पष्ट है?
webKnjaZ

मेरी अंतिम टिप्पणी को विस्तार से बताने के लिए। जब मुझे "sudo find / -iname nvm *" मिलता है, तो मुझे मेरे ~ / .nvm फ़ोल्डर में केवल चीजें मिलती हैं। ~ / .Nvm / nvm-exec या ~ / .nvm / nvm.sh (केवल ~ ~ .nvm में फ़ाइलें, जो शेल स्क्रिप्ट के रूप में निकलती हैं) को निष्पादित करने से मुझे nvm नहीं मिलता, जैसे "nvm" टाइप करने पर। कमांड लाइन। तो एनवीएम और कार्यक्रम के बीच लिंक कहां है।
ओकीदोकी

ओह .. मुझे लगता है कि nvmएक है aliasअपने खोल वातावरण में। कृपया का आउटपुट पोस्ट करें which nvmऔर इससे चीजें साफ हो जाएंगी।
webKnjaZ

2
मैंने nvmस्थानीय रूप से स्थापित किया है और कुछ शोध किए हैं। nvmमें एक शेल फ़ंक्शन घोषित किया गया है nvm.sh, इसलिए मूल रूप से आपको इसे . ~/.nvm/nvm.shअपनी स्क्रिप्ट की शुरुआत के साथ स्रोत करने की आवश्यकता है (या, जैसा कि मैंने ऊपर लिखा था, - स्रोत .profile/ .bashrc)
webKnjaZ

2

यदि आपने इसे OSX पर काढ़ा के माध्यम से स्थापित किया है, तो आप इसे स्थापित करने के विवरण के रूप में इसे स्रोत द्वारा सोर्सिंग द्वारा काढ़ा स्क्रिप्ट में लोड कर सकते हैं।

मैं परियोजनाओं में उन्हें बूटस्ट्रैप करने के लिए यह है:

brew install nvm
. $(brew --prefix nvm)/nvm.sh
nvm install
...

1

@WebKnjaZ द्वारा प्रदान किए गए जवाब के शीर्ष पर छोटा कॉलआउट: मुझे अपनी बैश स्क्रिप्ट में काम करने के लिए प्रत्येक कमांड के लिए शेल फ़ंक्शन को स्रोत करना पड़ा। कुछ इस तरह:

. ~/.nvm/nvm.sh --version
. ~/.nvm/nvm.sh install 4.4.5

1
यह मेरे लिए काम नहीं किया। निम्नलिखित ने मेरे लिए काम किया: ~ / .nvm / nvm.sh nvm --version
jeff

0

नीचे एक ही बात हुई जो मेरे लिए काम की चीज है:

रूट @ ubuntu: / usr / src / खेल का मैदान # n = $ (जो नोड); n = $ {n% / bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, share} / usr / लोकल

रूट @ ubuntu: / usr / src / खेल का मैदान # sudo npm स्थापित एक्सप्रेस '/usr/src/playground/package.json' + express@4.16.2 ने 129.186 में 49 पैकेज जोड़े

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

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