NodeJs: / usr / bin / env: नोड स्थापित नहीं कर सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं


302

मैं अपने Ubuntu 14.04 में GruntJs का उपयोग करने के लिए नोडज स्थापित करने का प्रयास कर रहा हूं।

मैंने उबंटू के विभिन्न तरीकों के बारे में पढ़ा है ( मुद्दे? ), इसलिए इसे स्थापित करने के लिए मैंने यही किया है:

sudo apt-get install npm

sudo npm install -g grunt-cli

टाइपिंग ग्रंट के बाद मुझे त्रुटि मिली है:

/usr/bin/env: node: No such file or directory

तो, मैंने कोशिश की है:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

और फिर से कोशिश कर रहा है, और अभी भी त्रुटि हो रही है, मैंने कोशिश की है:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

मुझे यह संदेश मिला है:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

मैंने सिर्फ मामले में सफाई की कोशिश की:

sudo apt-get autoremove

लेकिन नहीं, त्रुटि अभी भी है: जब मैं ग्रंट टाइप करता हूं तब भी मुझे मिलता है /usr/bin/env: node: No such file or directory

मुझे क्या करना चाहिए?

जवाबों:


793

सिम्क्लिन करना समस्या को हल करता है:

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

(मेरा धन्यवाद और बोदोकैसर के जवाब के लिए +1 वोट )।


97
sudo apt-get install nodejs-legacyभी इस लिंक बनाता है, पर विवरण देखने के packages.debian.org/sid/nodejs-legacy
अनातोली techtonik

1
सिम्लिंक ने इस मुद्दे को हल किया और विकास के बहुत से समय को बचाया। धन्यवाद!
फ़रज़ाद YZ

यह फिक्स गंभीर रूप से एक जीवनरक्षक है। खासतौर पर, अगर आप यहां फिक्सिंग परमिशन गाइड का पालन कर रहे हैं तो docs.npmjs.com/getting-started/fixing-npm-permissions
जोश

धन्यवाद! इसने मेरी दोपहर को बचाया, Google क्लाउड लिनक्स पर एक नोड ऐप स्थापित करने की कोशिश की।
जोवन

1
आपको इसका उपयोग करना चाहिए which nodeताकि आपको अपने नोड के लिए सही रास्ता मिल सके। तो कमांड होगाln -s "$(which node)" /usr/bin/node
तकनीकी

117

समस्या नोड के संस्करण के साथ नहीं है। इसके बजाय, यह उबंटू में डिफ़ॉल्ट रूप से NodeJS स्थापित है। उबंटू में एक नोड एप्लिकेशन को चलाते समय आपको nodejs somethign.jsइसके बजाय चलाना होगाnode something.js

इसलिए टर्मिनल में कहा जाने वाला एप्लिकेशन नाम है nodejsऔर नहीं node। यही कारण है कि केवल प्राप्त सभी आदेशों को आगे बढ़ाने के लिए एक सिम्लिंक की आवश्यकता nodeहैnodejs

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

6
आपको इस कमांड को sudo के साथ चलाना होगा, अगर आपको "ln: प्रतीकात्मक लिंक बनाने में विफल रहा है '/ usr / bin / node'" त्रुटि
सूरज दुबे

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

54

मुझे लगता है कि आपको नवीनतम नोड संस्करण को अपग्रेड करना चाहिए

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

1
बस एक टिप; 4 स्थानों द्वारा कोड की अपनी लाइनों को इंडेंट करें;) भी, nएक कमांड नहीं है जो Node.JS के साथ संबद्ध है।
Qix - मोनिका ने

@ एनपीएम पर पैकेज विवरण के आधार पर
डेविड

मेरे लिए समस्या का समाधान
क्रिटिसरिज़

मैंने मशीन laravelसे एक प्रोजेक्ट कॉपी windowsकिया ubuntu 16.04और laravel mixउसे समस्या हुई npm run watchऔर इस समाधान ने मेरे लिए काम किया और अब समस्या चली गई
AN

29

यदि आप नोडज कमांड का उपयोग करके ubuntu टर्मिनल पर नोड का उपयोग करने में सक्षम हैं, तो इस समस्या को केवल नोड्स और नोड का एक प्रतीकात्मक लिंक का उपयोग करके हल किया जा सकता है

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

और इससे समस्या हल हो सकती है




9

मैंने पाया है कि यह अक्सर एक भ्रामक त्रुटि है, यदि आप एक पैकेज प्रबंधक से स्थापित करते हैं जिसे आप बिन कहा जा सकता है तो आप इसे केवल इस तरह से सहानुभूति की आवश्यकता कर सकते हैं।

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

1
एक नकारात्मक प्रतिक्रिया जोड़ने के बजाय, मुझे टिप्पणी में यहाँ बताएं कि क्या गलत है, इसलिए मैं आपकी मदद कर सकता हूं। चूँकि सिम्क्लिन बनाने में कुछ भी गलत नहीं है, खासकर अगर यह आपको चीजों को बेहतर तरीके से प्रबंधित करने में मदद करता है।
अहमद आवा

1
मैं अपने लिए इस दृष्टिकोण को प्राथमिकता देता हूं। यह साफ है।
मुहम्मद गेल्बाना

8

यदि आपके पास पहले से ही नोडज स्थापित है (जांच के साथ which nodejs) और दूसरा पैकेज स्थापित नहीं करना चाहते हैं, तो आप रूट के रूप में कर सकते हैं:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

यह उचित डेबियन तरीका है।
टोनिन

6

जब मैं gulp का उपयोग कर रहा था तो मुझे यह त्रुटि मिली।

~$ gulp

/ usr / bin / env: 'नोड': ऐसी कोई फ़ाइल या निर्देशिका नहीं

यह निम्नलिखित कमांड को निष्पादित करके हटा दिया गया था जिसे आपको ध्यान में रखना है कि / usr / bin निर्देशिका में सभी अनुमतियां हैं।

~$ ln -s /usr/bin/nodejs /usr/bin/node

यह मेरे लिए काम करता है ..


5

इस बात पर निर्भर करता है कि आपने अपना नोड कैसे स्थापित किया है, अधिकांश समय यह / usr / bin / में नहीं हो सकता है, मेरे स्वयं के मामले में यह था कि मैं nvm का उपयोग करता था ताकि मेरा नोड स्थापित हो सके ।/nvm/versions।

इस कमांड का उपयोग करके which nodeमुझे रास्ता मिल गया, लेकिन काम को आसान बनाने के लिए आप इस कमांड को चला सकते हैं।

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

उपरोक्त कमांड आपके नोड का स्थान प्राप्त करेगी और आपके लिए एक लिंक बनाएगी।


5

इसके दो समाधान हैं:

a) "/ usr / स्थानीय / बिन" को शामिल करने के लिए अपना पैठ चर सेट करें

export PATH="$PATH:/usr/local/bin"

b) "/ usr / bin" के लिए एक सिमलिंक बनाएँ जो पहले से ही आपके PATH में है

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

मुझे उम्मीद है यह मदद करेगा।


4

जबकि ln -sस्पष्ट सबसे आसान है, स्पष्टीकरण का एक टुकड़ा:

एक और पैकेज के साथ संघर्ष के कारण, Ubuntu रिपॉजिटरी से निष्पादन योग्य नोड के बजाय नोडज कहा जाता है। इस बात का ध्यान रखें कि आप सॉफ्टवेयर चला रहे हैं।

स्थापित करते समय यह सलाह सामने आती है sudo apt-get install nodejs

तो कुछ अन्य ज्ञात उपकरण (मुझे नहीं पता कि यह क्या करता है। उबंटू रिपॉजिटरी के रूप में जाना जाता है, यह 16.04 में डिफ़ॉल्ट रूप से स्थापित नहीं है) उस नाम स्थान पर कब्जा कर लेता है।

अच्छा होता, अगर उबंटू ने सलाह दी थी कि इस 'सफाई' को कैसे ठीक किया जाए, अगर हाथ से नहीं तो पैकेज क्या करेगा। (टक्कर एक टक्कर बनी रहती है ... अगर + कब होगी)


1
@ टॉम-हेल जवाब इसके लिए उबंटू तरीका है। आप सही नोड निर्दिष्ट करने के लिए विकल्पों का उपयोग करते हैं
kervin


2

मेरे केस लिंक के लिए अनुसरण के रूप में काम नहीं किया

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

लेकिन आप रूट के रूप में / usr / लोकल / बिन / लेसक खोल सकते हैं, और नोड से नोडज तक पहली लाइन बदल सकते हैं।

- #! / usr / bin / env नोड

+ #! / usr / bin / env नोडज


2

समस्या को ठीक करने के लिए इन आदेशों का पालन करें।

एक टर्मिनल में:

  1. पूरे एनपीएम कैश को साफ करें:

    $ sudo npm cache clean -f
  2. sudo npm install -g n
  3. Node.js का नवीनतम स्थिर संस्करण स्थापित करें:

    sudo n stable

अब Node.js का नवीनतम संस्करण स्थापित किया गया था। संस्करण का उपयोग करके जांचें:

node -v


0

मेरे लिए स्वीकृत जवाब अभी तक काम नहीं किया। मैंने यहाँ सुझाव के रूप में शुरुआत की:

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

ऐसा करने के बाद मुझे निम्नलिखित त्रुटि मिल रही थी:

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 नोटिफ़ायर = आवश्यकता ('अपडेट-नोटिफायर') ({pkg}) ^ ^ ^ ^

SyntaxError: ब्लॉक-स्कोप्ड डिक्लेरेशन (चलो, कास्ट, फंक्शन, क्लास) Export.runInThisContext (vm.js: 53: 16) पर सख्त मोड के बाहर समर्थित नहीं हैं। Module.compile (mod.js: 374: 25) ऑब्जेक्ट पर। मॉड्यूल.नियंत्रण..जेएस (मॉड्यूल। जेएस: 417: 10) मॉड्यूल। लोड पर (मॉड्यूल। जेएस: 344: 32) समारोह में। मॉड्यूल। लोड (मॉड्यूल। जेएस: 301: 12) समारोह में ।odule.runMain ( mod.js: 442: 10) स्टार्टअप पर (नोड। जेएस: 136: 18) नोड पर। जेएस: 966: 3

समाधान नोड के सबसे हाल के संस्करण को https://nodejs.org/en/download/ से डाउनलोड करना था

फिर मैंने किया:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

अब अपडेट अंत में सफल रहा: npm -v3.2.1 से 6.4.1 में बदल गया

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