ब्राउज़र त्रुटि / usr / bin / env: नोड: ऐसी कोई फ़ाइल या निर्देशिका नहीं


85

मैंने apt-get install और निर्भरता के सभी के माध्यम से नोड js और npm को स्थापित किया, फिर मैंने Browserify स्थापित किया

npm install browserify -g

यह प्रक्रिया से गुजरता है और ऐसा लगता है कि यह सही तरीके से स्थापित है, लेकिन जब मैं इस वॉकथ्रू के अनुसार एक सरल बंडल करने की कोशिश करता हूं

मुझे त्रुटि मिली:

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

यहाँ छवि विवरण दर्ज करें


हम्म आपको यह जांचना चाहिए कि नोड निष्पादन योग्य / usr / bin या / usb / bin / env में कम से कम यह एक ऑपरेटिंग विशिष्ट समस्या है। आप ब्राउजरलाइफ लोकल इंस्टॉल करके इसका समाधान कर सकते हैं।
बोडोकेसर

मेरे ब्राउजर का निष्पादन योग्य / usr / लोकल / बिन / में है, लेकिन क्या यह कुछ और कह रहा है कि मार्ग गड़बड़ है?
एडुआर्डो डेनिस

3
आह, आपको ubuntu पर नोड करने के लिए नोडलिज़ को समिंज करना है। उबंटू नोड्स को नोडज के रूप में स्थापित करता है तब आपको "ln -s / usr / bin / nodejs / usr / bin / node" जैसा कुछ करना होगा ताकि सिस्टम इसे नोड के रूप में भी पा
सके

1
इसे हल किया गया: -पी पिछले एक घंटे से इस पर मेरा सिर तोड़ रहा है, क्या आप स्वीकार करने के लिए उत्तर प्रारूप में डाल सकते हैं?
एडुआर्डो डेनिस

1
खुशी है कि यह काम नहीं कर रहा था यकीन है कि अगर यह वास्तव में यह समस्या है यही कारण है कि मैं पहली टिप्पणी :)
bodokaiser

जवाबों:


246

कुछ लिनक्स वितरण नोडज को "नोड" निष्पादन योग्य नहीं बल्कि "नोडजे" के रूप में स्थापित करते हैं।

इस मामले में आपको "नोड" से मैन्युअल रूप से लिंक करना होगा क्योंकि "नोड" बाइनरी के बाद कई पैकेज प्रोग्राम किए जाते हैं। कुछ ऐसा ही "python2" के साथ भी होता है जो "python" से जुड़ा नहीं है।

इस मामले में आप एक आसान सीलिंक कर सकते हैं। लिनक्स वितरण के लिए जो /usr/binआप के लिए पैकेज बायनेरिज़ स्थापित करते हैं

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

5
यह Ubuntu 14.04 के लिए समाधान नहीं है क्योंकि /usb/sbin/nodeax24- नोड (नोडज से असंबंधित) है। सिर्फ प्रतीकात्मक जोड़ने से /usr/bin/nodeकाम नहीं चलेगा क्योंकि /usr/sbin/nodeपहले आता है$PATH
गैरेथ

8
इसे हल करने का सही तरीका उपयोग करना है update-alternatives। मेरा जवाब यहाँ देखें stackoverflow.com/a/24592328/454615
airtonix

1
वास्तव में इस बारे में अधिक सोच ... इस तरह के चारों ओर बायनेरिज़ को सिमिलिंक करना एक बड़ी आदत है यदि आप अपने सिस्टम को तोड़ना चाहते हैं।
एयरटोनिक्स

हाँ, मैंने देखा है कि यह इसे सूक्ष्म तरीकों से तोड़ता है, क्या आपने एक बेहतर समाधान पाया है?
एडुआर्डो डेनिस

1
@EduardoDennis हाँ, उपयोग करें update-alternatives। यह इन सटीक स्थितियों के लिए मौजूद है।
एयरटोनिक्स

52

नया उत्तर:

  1. अपने सिस्टम पैकेज मैनेजर (dnf, apt-get, etc) के माध्यम से आपके द्वारा इंस्टॉल किए गए किसी भी नोडज पैकेज को अनइंस्टॉल करें, आप हर अपग्रेड (lol) को फिर से तैयार कर रहे हैं, जो किसी भी तरह के साइमलिंक को हटा दें।
  2. NVM स्थापित करें,
  3. नोड्ज स्थापित करने के लिए एनवीएम का उपयोग करें: एनवीएम 6 स्थापित करें

पुराना उत्तर:

सिम्बलिंक बनाने या कुछ अन्य नोड-पैकेज स्थापित करने की कोई भी बात सहज है और टिकाऊ नहीं है।

इसे हल करने का सही तरीका है:

  1. सरल आप पहले से ही है की तरह प्राप्त करने के साथ नोड्ज पैकेज स्थापित करें
  2. update-alternativesइंगित करने के लिए उपयोग करें कि आपका नोडज बाइनरी किसके लिए जिम्मेदार है#!/usr/bin/env node

इस तरह :

sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

यह अब पूरे पैकेज अपग्रेड, डिस्ट-अपग्रेड और इसके बाद टिकाऊ हो जाता है।


यह मेरी समस्या stackoverflow.com/questions/26155795/… के
Alon Carmel

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

अब वास्तविक सही उत्तर लिनक्स पर NVM और विंडोज पर Nodist का उपयोग करना है।
एयरटोनिक्स

35

भागो apt-get install nodejs-legacy

कुछ लिनक्स वितरणों ने नोड.जेड बाइनरी नाम को बदल दिया है जो इसे बहुत सारे नोड के साथ असंगत बना रहा है। जेएस पैकेज। पैकेज nodejs-legacyइसे हल करने के लिए एक सिमलिंक प्रदान करता है।


2
यह Ubuntu 14.04 के लिए समाधान है क्योंकि /usb/sbin/nodeax24-node (नोडज से असंबंधित) है। सिर्फ प्रतीकात्मक जोड़ने से /usr/bin/nodeकाम नहीं चलेगा क्योंकि /usr/sbin/nodeपहले आता है$PATH
गैरेथ

मेरी मदद की। धन्यवाद!
लैपिडस

apt-get स्थापित नोडज-विरासत। विंडोज़ उपयोगकर्ता के लिए कहता है कि 'apt-get' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता प्राप्त नहीं है।
स्विफ्ट

7

आप NVM या Nodejs संस्करण प्रबंधक का उपयोग करके Nodejs भी स्थापित कर सकते हैं । एक संस्करण प्रबंधक का उपयोग करने के लिए बहुत सारे लाभ हैं । उनमें से एक होने के नाते आपको इस मुद्दे पर चिंता करने की ज़रूरत नहीं है।


निर्देश:


sudo apt-get update
sudo apt-get install build-essential libssl-dev

एक बार पूर्वापेक्षा पैकेज स्थापित हो जाने के बाद, आप nvm अधिष्ठापन स्क्रिप्ट को प्रोजेक्ट के GitHub पेज से नीचे खींच सकते हैं। संस्करण संख्या भिन्न हो सकती है, लेकिन सामान्य तौर पर, आप इसे निम्न सिंटैक्स के साथ डाउनलोड और स्थापित कर सकते हैं:

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

यह स्क्रिप्ट को डाउनलोड करेगा और उसे चलाएगा। यह सॉफ्टवेयर को आपके होम डायरेक्टरी के उपनिर्देशिका में स्थापित करेगा ~/.nvm। यह ~/.profileफ़ाइल का उपयोग करने के लिए आपकी फ़ाइल में आवश्यक लाइनें भी जोड़ देगा ।

एनवीएम कार्यक्षमता तक पहुँचने के लिए, आपको लॉग आउट करना होगा और फिर से लॉग इन करना होगा, या आप ~ / .profile फ़ाइल को स्रोत कर सकते हैं ताकि आपका वर्तमान सत्र परिवर्तनों के बारे में जान सके:

source ~/.profile

अब जब आपके पास nvm इंस्टॉल हो गया है, तो आप पृथक Node.js संस्करण स्थापित कर सकते हैं।

स्थापना के लिए उपलब्ध Node.js के संस्करणों का पता लगाने के लिए, आप टाइप कर सकते हैं:

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

जैसा कि आप देख सकते हैं, इस लेखन के समय का नवीनतम संस्करण v0.11.14 है। आप इसे टाइप करके स्थापित कर सकते हैं:

nvm install 0.11.14

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

nvm use 0.11.14

जब आप nvm का उपयोग करके Node.js स्थापित करते हैं, तो निष्पादन योग्य नोड कहलाता है। आप वर्तमान में शेल द्वारा टाइप किया जा रहा संस्करण देख सकते हैं:

node -v

Comeplete ट्यूटोरियल यहां पाया जा सकता है


हां, पर्यावरण संस्करण प्रबंधकों के लिए एक प्लस। निश्चित रूप से दोनों की तुलना में मेरा बेहतर उत्तर यह होने का सही तरीका है। मैं कहूंगा कि एनवीएम का उद्देश्य इंटरएक्टिव वर्कस्टेशंस है न कि प्रोडक्शन सर्वर (लेकिन मैं यह नहीं देख सकता कि कोई इसका इस्तेमाल क्यों नहीं कर सकता) ... व्यक्तिगत रूप से मैं प्रोडक्शन में डॉक इमेज का उपयोग करने के लिए अधिक इच्छुक हूं।
airtonix


0

जब मैं लिनक्स में परमाणु का निर्माण करता हूं तो मुझे यही समस्या लगती है।

sudo apt-get install nodejs-dev

मेरे प्रश्न को ठीक करो। आपके लिए उपयोगी।


0

यदि आप सहानुभूति नहीं रखना चाहते हैं तो आप ऐसा कर सकते हैं। उबंटू में काम करता है

#!/usr/local/bin/node --harmony

सद्भाव टैग नए ECMAscript सद्भाव के लिए है


0
  1. कमांड चलाएं which node परिणाम कुछ होगा

    /home/moh/.nvm/versions/node/v8.9.4/bin/node

  2. उस पथ की प्रतिलिपि बनाएँ जो आपको ऊपर मिला है, फिर चरण 3 में कमांड चलाएँ।

  3. ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node


-1

आपको "नोडज" को कॉल करना होगा और "नोड" को नहीं। इसे सत्यापित करने के लिए, node -vशेल पर टाइप करें : यदि कुछ नहीं मिला तो प्रयास करें nodejs -v। यदि वह संस्करण संख्या प्रदर्शित करता है, तो आपको जिस कमांड का उपयोग करना चाहिए वह है nodejsऔर नहीं node। इसलिए, आपको अपनी स्क्रिप्ट nodeमें nodejs(जैसा कि नीचे दिखाया गया है) से बदलने के लिए कॉल को बदलना होगा: प्रतिस्थापित करें

#!/usr/bin/env node

साथ में

#!/usr/bin/env nodejs

हो सकता है कि आपको स्क्रिप्ट को सुपरयुजर के रूप में भी खोलना पड़े।

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