ubuntu 12.04 पर नोड्ज बनाम नोड्ज


363

मैंने यहां दिए गए निर्देशों से ubuntu पर नोडज स्थापित किए

जब मैं node --versionटर्मिनल में लिखता हूं तो मैं यह देखता हूं:
-bash: /usr/sbin/node: No such file or directory

मैं /usr/sbin/निर्देशिका में नोड देख सकता हूं , हालांकि।

लेखन से npm --versionपता चलता है 1.3.5
लेखन से nodejs --versionपता चलता हैv0.10.15

इसके अलावा, मैं /usr/bin/डायरेक्टरी में नोड देख सकता हूं ।

तो, मुझे nodeकाम कैसे करना है ?

इसके अलावा, अगर मैं बैश के बजाय zsh का उपयोग करता हूं , तो nodeकमांड काम करता है।


1
यदि आप "/ usr / bin /" में नोड देखते हैं, तो आउटपुट क्या है ls -l /usr/bin/node?
रंडुनेल 15

1
@randunel I को यह आउटपुट मिलाlrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
जतिन

क्या आपने शेल आरसी में कोई बदलाव किया है?
randunel

यह आपके संपादन के बाद शेल समस्या की तरह दिखता है, export | grep PATHउपयोग न करने पर आउटपुट क्या करता है zsh? (यह /usr/binअन्य चीजों के बीच प्रिंट होना चाहिए )
randunel

1
समाधान + स्पष्टीकरण यहाँ: stackoverflow.com/questions/21168141/…
throbi

जवाबों:


599

आपको मैन्युअल रूप से एक सिमलिंक बनाने की आवश्यकता है /usr/bin/node। बैश संगत गोले के लिए शॉर्टकट:

sudo ln -s `which nodejs` /usr/bin/node

या यदि आप गैर-मानक गोले का उपयोग करते हैं, तो अपने साथ मिलने वाले मार्ग को हार्डकोड करें which nodejs:

sudo ln -s /usr/bin/nodejs /usr/bin/node

बाद में संपादित करें

आपके द्वारा पोस्ट किए गए लिंक में मुझे यह स्पष्टीकरण मिला

नोड पैकेज (एमेच्योर पैकेट रेडियो नोड कार्यक्रम) के साथ एक नामकरण संघर्ष है, और नोड बाइनरी को नोड से नोडज में बदल दिया गया है। आपको सिमिलर / usr / bin / node / to usr / bin / nodejs करने की आवश्यकता होगी या आप उस विरोध से बचने के लिए एमेच्योर पैकेट रेडियो नोड प्रोग्राम को अनइंस्टॉल कर सकते हैं।

बाद में बाद में संपादित करें

इसका उत्तर देते हुए मुझे कुछ समय हो गया है। हालाँकि मैंने जो समाधान यहां पोस्ट किया है वह मेरे लिए कई बार काम आया, उपयोगकर्ताओं ने टिप्पणियों के भीतर कुछ और समाधानों की रिपोर्ट की है:

@ User229115 से

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

AskUbuntu (उपयोगकर्ता वामियम) से

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

ठीक है! हालांकि, अगर मैं उपयोग करता हूं zsh, तो nodeकमांड काम करता है।
जतिन

1
इसके अलावा, मैं शौकिया पैकेट रेडियो नोड कार्यक्रम की स्थापना कैसे करूं? मैंने कोशिश की, sudo apt-get remove nodeलेकिन यह कहता हैPackage node is not installed, so not removed
जतिन

आपको इसे अनइंस्टॉल करने की आवश्यकता नहीं है, आपकी टिप्पणियों के बाद, यह एक शेल समस्या की तरह दिखता है, नोड पैकेज की समस्या नहीं।
रंडुनेल ०13

@ रंडुनेल का जवाब मेरे लिए काम नहीं करता था क्योंकि काम /usr/bin/env nodeनहीं करेगा। @ BennyMcBenBen के समाधान ने किया काम
francoisrv

2
@ टिनो का जवाब सही है, nodejs-legacyपैकेज का विवरण देखें। @BennyMcBenBen द्वारा लिंक किए गए उत्तर को समान निर्देशों के साथ भी अपडेट किया गया है।
tricasse

88

मुझे लगता है कि यह ऐसा है:

सूडो अपडेट-अल्टरनेटिव्स - इंस्टॉलेशन / यूएसआर / बिन / नोड नोड / यूएसआर / बिन / नोडज 10

डेबियन विकल्पों का उपयोग करना।


3
यह स्वीकार किए गए उत्तर की तुलना में बेहतर विकल्प लगता है, यह मैन्युअल रूप से / usr / bin / फ़ोल्डर को नहीं बदलता है और वैकल्पिक आदेशों के लिए बुनियादी ढांचे का उपयोग कर रहा है
डोमिनिक Fretz

यह कोशिश नहीं की है, लेकिन मैं update-alternativeडॉक्स को देखा । यदि यह वास्तव में काम करता है, तो यह एक बेहतर समाधान है :)
रैंडुनेल

3
क्या आप अधिक विशिष्ट हो सकते हैं जैसा कि यह कर रहा है?
बोर्न्सो

@DominikFretz meh अंतिम परिणाम है वास्तव में एक POSIX अनुरूप एक बनाम एक ही का उपयोग कर डेबियन-विशिष्ट आदेश। (आप कर सकते थे update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10।) प्रत्येक अपने स्वयं के लिए, लेकिन मैं सादे पसंद करता हूं ln
कोजिरो

2
मुझे source ~/.bashrcप्रभावी होने के लिए इसके लिए था
iNulty

64

स्पष्ट रूप से समाधान उबंटू संस्करणों के बीच भिन्न होता है। मेरे लिए Ubuntu 13.10 पर काम किया:

sudo apt-get install nodejs-legacy

HTH

संपादित करें: अंगूठे का नियम:

यदि आपने स्थापित किया है, nodejsलेकिन /usr/bin/nodeबाइनरी को याद कर रहे हैं , तो इंस्टॉल करें nodejs-legacy यह सिर्फ लापता सॉफ्टलिंक बनाता है।

मेरे परीक्षणों के अनुसार, उबंटू 17.10 और ऊपर पहले से ही स्थापित /usr/bin/nodeहोने के बाद संगतता-सॉफ्टलिंक nodejsहै, इसलिए nodejs-legacyइन रिलीज से गायब है क्योंकि इसकी कोई आवश्यकता नहीं है।


ऐसा लगता है कि नोडजेस-विरासत अब बनाए नहीं है। नवीनतम निर्माण 2013-04-10 पर बंद हो जाता है
francoisrv

8
nodejs-legacyज्यादा रखरखाव की जरूरत नहीं है। यह sudo ln -s nodejs /usr/bin/nodeकम से कम LTS 14.04
Tino

4
उबंटू 14.04 पर, नोडज और नोडज-लीगेसी एक ही संस्करण नोड (0.10.25) स्थापित करते हैं। +1 से @ टिनो।
मार्क ई। हासे

मेरे लिए डेबियन जेसी में भी काम करता है। यह स्वीकृत उत्तर होना चाहिए क्योंकि यह है कि चीजें कैसे होती हैं। केवल शौकिया रेडियो पैकेज का उपयोग करने वाले लोगों को ऐसा नहीं करना चाहिए। मैं सोच रहा हूं कि उन्होंने रेडियो पैकेज का नाम क्यों नहीं बदला जैसा उन्होंने क्रोमियम-बस्स के साथ किया था।
Jérôme

यह आपके सिस्टम पर नोड के 2 उदाहरणों में परिणाम देगा और यह अब बनाए नहीं रखा गया है ... इसके बजाय आपको नोडज से लिंक करने की सलाह दें।
PodTech.io

30

मैं Ubuntu 14.04 में एक ही मुद्दा है।

मैंने "नोडज" स्थापित किया है और यह काम कर रहा है, लेकिन केवल अगर मैं कमांड "नोडज" का उपयोग कर रहा हूं। अगर मैं "नोड" का उपयोग करने की कोशिश करता हूं, तो कुछ भी नहीं होता है।

मैं इस समस्या को अगले तरीके से ठीक कर रहा हूँ:

  1. नोडज-विरासत स्थापित करें

    sudo apt-get install नोडज-लीगेसी

उसके बाद, जब मैं कमांड लाइन में "नोड" टाइप करता हूं तो मुझे एक त्रुटि संदेश मिलता है "/ usr / sbin / नोड: ऐसा कोई फ़ाइल या पासवर्ड नहीं"

  1. दूसरा, मैंने क्या किया, यह "नोडज" पर एक प्रतीकात्मक कड़ी है:

    sudo ln -s / usr / bin / nodejs / usr / sbin / नोड

4
आपके सिस्टम पर कुछ अजीब है। nodeमें स्थापित किया जाना है /usr/bin/और नहीं माना जाता है /usr/sbin/। यह मेरे लिए ऐसा लगता है जैसे आपने nodeहमरेडियो से पहले उबंटू पैकेज स्थापित किया था ( संकुल देखें ।ubuntu.com/trusty/all/node/filelist ) और hash -rशेल स्तर पर चलना भूल गया , जैसे कि शेल को अभी भी गलत पथ याद है। दूसरे ने lnतय किया कि जैसे भी हो, लेकिन आपको उस शेल को छोड़ने के बाद इसकी कोई आवश्यकता नहीं है।
टीनो

BTW, यहां तक ​​कि गलत उत्तर भी सभी तीन समान नामों के तीन पैकेजों के कारण सभी परेशानी को समझाने के लिए अच्छे हैं: node( /usr/sbin/nodeकुछ के लिए पूरी तरह से अलग), nodejs( /usr/bin/nodejs) और nodejs-legacy( /usr/bin/node, पैकेज पर निर्भर करता है nodejs)।
टीनो

यह मुझे भी हुआ था। मैंने कुछ समय पहले स्रोत से नोड स्थापित किया था। node -v => 0.10.2जबकि nodejs -v => 5.5.0। कमांड चलाना which nodeहमेशा इस स्थानीय स्थापना की ओर इशारा करता है। अंत में, मुझे करना पड़ा unset NODE_PATH, जिसने इसे ठीक करने के लिए स्थानीय स्थापना की ओर इशारा किया। इसके बाद, node -v => 5.5.0और npm install नोड => 5.0 के आधार पर पैकेज के लिए काम करना शुरू कर दिया।
सीसर्फ़

11

यह मुझे भी हुआ था।

node -v => 0.10.2
nodejs -v => 5.5.0

मुद्दा यह था कि मैंने कुछ समय पहले स्रोत से नोड स्थापित किया था। चल रहा है

which node

हमेशा इस स्थानीय स्थापना की ओर इशारा किया। इसके अलावा,

echo NODE_PATH

स्थानीय स्थापना की ओर इशारा किया।

स्रोत इंस्टॉल के साथ निर्देशिका को हटाने से मदद नहीं मिली। इसने नोड कमांड को तोड़ दिया। अंत में, NODE_PATH पर्यावरण वैरिएबल को अनसेट करना और फिर नोडज को फिर से इंस्टॉल करना ने चालबाजी की।

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

इसके बाद,

node -v => 5.5.0

और npm स्थापित ने Node => 5.0 के आधार पर संकुल के लिए काम करना शुरू किया।


इसने मेरे लिए काम किया। बहुत बुरा मैं इसे खोजने से पहले एक घंटे के लिए गड़बड़ कर दिया।
डस्टिन फ्रैकर

11

नोड संस्करण प्रबंधक (एनवीएम)

यदि आप कई नोडज संस्करण स्थापित करना चाहते हैं और आसानी से उन दोनों के बीच स्विच करते हैं, तो मैं नोड संस्करण मंगर का उपयोग करने का सुझाव दूंगा । यह नामकरण की समस्या को भी हल करता है ( nodeबनाम nodejs)

यह काफी सरल है:

एक नोडज संस्करण स्थापित करें:

$ nvm install 4.4

अब आपके पास पहले से इंस्टॉल किए गए संस्करण के अलावा नोडजेस 4.4 है और आप केवल nodeनए इंस्टॉल किए गए संस्करण तक पहुंचने के लिए कमांड का उपयोग कर सकते हैं :

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

आप अधिक नोडज संस्करण स्थापित कर सकते हैं और उनके बीच आसानी से स्विच कर सकते हैं:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

2
यह मेरा मुद्दा हल हो गया है, बहुत बहुत धन्यवाद, मुझे कुछ उपयोगी आदेश मिला nvmकि कैसे एक Ubuntu 14.04 सर्वर पर Node.js स्थापित करें
Huy Nguyen

1
यह मेरे लिए काम किया। इसके अलावा एक गाइड यहां उपलब्ध है: digitalocean.com/community/tutorials/…
Koen Cornelis

10

मैं यह सब करने के लिए नया हूं, लेकिन मेरे लिए एक साधारण उपनाम ने काम किया:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

कम से कम चीजों को सीधे बैश में चलाने और .js फ़ाइलों को निष्पादित करने के लिए।


बिना काम किए rlwrap। धन्यवाद!
शूरिक

धन्यवाद @Phill, तुम कमाल हो!
युसरील हेरालियन सियाह

9

नोडज साइट से आधिकारिक निर्देशों का उपयोग करने के बारे में कैसे :

V7 के लिए:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

V6 के लिए:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

V4 के लिए:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

मैंने विंडोज बैश (लिनक्स के लिए सबसिस्टम के माध्यम से - 14.04) और रास्पबियन (एआरएम डेबियन आधारित) से इनका परीक्षण किया है। रनिंग sudo apt-get install -y nodejsपहले सेटअप स्क्रिप्ट चलाने के बिना आप नोड 0.10 प्राप्त करने में परिणाम देगा।

यदि आप निर्माण की आवश्यकता वाले देशी npm मॉड्यूल स्थापित करने की योजना बना रहे हैं, तो भी चलाएं:

sudo apt install -y build-essential

नोट: यह सभी आर्किटेक्चर में किसी भी डेबियन आधारित डिस्ट्रो के लिए अनुशंसित पथ है।


7

@ Randunel का सही उत्तर जोड़ना (अभी तक SO पर टिप्पणी नहीं कर सकता):

मुझे सिम्लिंक / usr / लोकल / बिन / नोड / / usr / बिन / नोडज के साथ भी करना था।

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

जाहिर है, यह / usr / bin / नोड कमांड को ओवरराइड कर रहा था।

पता नहीं कैसे सेट हो गया, लेकिन आशा है कि यह किसी और की मदद करता है क्योंकि यह पता लगाने के लिए दर्द था कि ऊपर मेरे लिए काम क्यों नहीं कर रहा था।


7

देर से जवाब, लेकिन अप-टू-डेट जानकारी के लिए ...

यदि आप नोड गिथब इंस्टॉलेशन रीडमे से अनुशंसा विधि का उपयोग करके नोड स्थापित करते हैं , तो यह नोड्ससोर्स ब्लॉग लेख के निर्देशों का पालन करने का सुझाव देता है , इसके बजाय एप्ट-गेट रेपो से बाहर स्थापित करने के बजाय, नोड.जेएस nodeकमांड का उपयोग करके चलना चाहिए । nodejsएक नया सिमलिंक बनाने के बिना, साथ ही साथ कमांड भी।

लेख से यह विधि है:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

ध्यान दें कि यह v0.12 के लिए है, जो कि भविष्य में दूर के भविष्य में पुराना हो जाएगा।

इसके अलावा, यदि आप एक कॉर्पोरेट प्रॉक्सी के पीछे हैं (मेरे जैसे) तो आप sudo कमांड में -E विकल्प जोड़ना चाहते हैं, ताकि प्रॉक्सी के लिए आवश्यक एनवी वेरिएस को संरक्षित किया जा सके:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -



4

यदि आप उबंटू इंस्टेंस (उबंटू 16.x पर जांचे) पर चलने वाले AWS EC2 इंस्टेंस पर हैं, तो ये कदम आपके लिए काम कर सकते हैं:

    sudo apt-get update
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get --purge remove legacy-node -y
    सुडो आरएम / यूएसआर / बिन / नोड
    curl -sL https://deb.nodesource.com/setup_6.x | सुडो बैश -
    sudo apt-get install नोड्ज -y
    नोड -v

यदि सब सही है तो अंतिम कमांड में आउटपुट होगा जैसे: v6.xx

यदि नहीं तो निम्नलिखित चलाएं:

    sudo ln -s / usr / bin / nodejs / usr / बिन / नोड

उम्मीद है कि इससे मदद मिलेगी। इसने मुझे जादुई रूप से मदद की (हेहे)।


3

मेरे पास एक ही मुद्दा था प्रतीकात्मक लिंक ने मेरी मदद की: sudo ln -s / usr / bin / nodejs / usr / bin / node उसके बाद sudo npm install -g phantomjs-prebuilt

आसानी से चला गया


2

नोडज स्थापित करने का सबसे अच्छा तरीका NVM (नोड संस्करण प्रबंधक) है

पिछले संस्करण हटाएं:

$ सुडो एप-गेट पर्ज नोड
$ सुडो एप ऑटोरेमोव

$ sudo rm -rf node_modulesइस फ़ोल्डर वाली निर्देशिका द्वारा सभी node_modules हटाएं ।

नोड और नोड्स तकनीकी रूप से एक ही चीज हैं। बस नामकरण बदल गया।

पहले एनवीएम स्थापित या अपडेट करें

जड़ के रूप में चलाने के लिए

$ सूदो सु 

फिर

$ कर्ल -ओ- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | दे घुमा के

या

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | दे घुमा के

पथ के लिए nvm की जाँच करें

$ स्रोत ~ /। लाभकारी
$ एनवीएम एलएस-रिमोट

यदि आपको लिस्टिंग के बारे में त्रुटि मिलती है तो git इंस्टॉल करें।

$ सुडो एप-गेट स्थापित करें

पुनः चलाएं:

$ एनवीएम एलएस-रिमोट
या
$ सुडो एनवीएम एलएस-रिमोट

$ nvm संस्करण-आप की आवश्यकता को स्थापित करते हैं 

संस्करण की जाँच

# नोड - विसर्जन
एनवीएम संस्करण-आप की आवश्यकता का उपयोग करें

सूचना पाठ्यक्रम:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps


1

मैंने एक सिमलिंक बनाया था, लेकिन यह अभी भी काम नहीं कर रहा था।

मैं अपने टर्मिनल (मेरा पोटीन कनेक्शन) को पुनः आरंभ करना भूल गया। के बाद मैंने इसे सिम्लिंक के बिना काम किया था :)


1

निरपेक्ष शुरुआती के लिए सहायक होगा

हालांकि, आपको जवाब मिल गया है, बस यह बताना चाहता था कि nodeकमांड (बिना किसी पैरामीटर के) कच्चे जावास्क्रिप्ट कोड को निष्पादित करने के लिए REPL रीड-इवल-प्रिंट-लूप मोड में नोड शुरू करेगा ।

nodeकमांड का उपयोग करने का एक और तरीका यह है कि इसे jsएक पैरामीटर के रूप में एक फ़ाइल प्रदान करके । इस तरह से हम ज्यादातर इसका उपयोग करते हैं।


0

यह मौजूदा नोड और नोडज को हटाने के लिए वैकल्पिक है, लेकिन वैकल्पिक रूप से नवीनतम 7.x नोडज को स्थापित करना है।

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

0

बस NVM (नोड संस्करण प्रबंधक) का उपयोग करें - https://github.com/creationix/nvm

यह Node.js. के प्रबंधन का मानक बन गया है

जब आपको एक नया संस्करण चाहिए:

nvm install NEW_VER
nvm use XXX

अगर कुछ गलत होता है तो आप हमेशा साथ जा सकते हैं

nvm use OLD_VER


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