कमांड को नहीं मिला जब sudo पर node.js n पैकेज को निष्पादित किया गया


13

मैं नोड के अपने संस्करण को नवीनतम स्थिर में अद्यतन करने का प्रयास कर रहा हूं।

इस संसाधन का उपयोग करने में मैं सक्षम था:

sudo npm install n -g

लेकिन जब मैं कोशिश करता हूं

sudo npm n stable

मुझे मिला:

sudo: n: command not found

अगर मैं चलता हूं n stable, तो कमांड मौजूद है:

n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

  Error: sudo required

अच्छा विचार है, लेकिन जब मैं यह करता हूं कि यह मुझे 'एन: कमांड नहीं मिला', भले ही मैंने '
सूडो

sudo sh -c "PATH = $ PATH; n स्थिर" <नई पंक्ति> sh: 1: n: नहीं मिली
JonRed

कोई आउटपुट नहीं। यही कारण है कि depresssing है :-(
JonRed


कृपया आउटपुटls /usr/local/bin/n
हेलियो

जवाबों:


5

हैरानी की बात यह है कि आपके npmइंस्टॉलेशन में npmआपके होम डायरेक्टरी नामक फोल्डर में ग्लोबल उपसर्ग है , इसका मतलब है कि किसी भी पैकेज को इनस्टॉल किया गया है-g ध्वज के इस फोल्डर पर स्थापित होगा।

आप इस फ़ोल्डर को किसी भी फ़ोल्डर में बदल सकते हैं जो sudoइन चरणों के बाद सुरक्षित पथ पर है :


चित्रमय तरीका:

  1. एक फ़ाइल प्रबंधक (उर्फ नॉटिलस) खोलें।
  2. अपने होम फोल्डर पर नेविगेट करें।
  3. Ctrl+ दबाएंHछुपी हुई फ़ाइलों को दिखाने के लिए ।
  4. .npmrcअपने पसंदीदा टेक्स्ट एडिटर के साथ एक फाइल खोलें ।
  5. इस सामग्री के साथ उस फ़ाइल पर एक पंक्ति खोजें:

    prefix=/home/<your_username>/npm
    
  6. /home/<your_username>/npmसुरक्षित पथ (जैसे /usr/local/bin) से बदलें ।
  7. एक बार यह इस तरह दिखेगा:

    prefix=/usr/local/bin
    
  8. फ़ाइल सहेजें।
  9. दोबारा दौडो sudo npm install n -g

टर्मिनल तरीका:

यह आदेश चलाएँ:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc

मुझे लगता है कि यह यह किसी को भी! जब मैंने अपना npm संस्करण अपडेट किया, तब भी इससे मुझे मदद मिली, लेकिन इसे पहचान नहीं पाया। तो, स्वीकार किया, और धन्यवाद!
जॉनरेड

Didnt मदद, अभी भी समान है: /
Luckylooke

इससे मुझे मदद मिली! मेरे पास ~ / .npmrc फ़ाइल नहीं थी, इसलिए मैंने इसे जोड़ा और अब यह ठीक काम करता है
किरिल गुसातिन

2
खबरदार: यह NPM अनुमतियों को ठीक करने के विकल्प 2 को पूर्ववत करेगा
Edson Horacio Junior

23

मुझे समाधान मिल गया है जो मेरे लिए काम कर रहा है:

sudo -E env "PATH=$PATH" n stable

इसे यहां देखें: /programming//a/29400598/861615


env: n: ऐसी कोई फ़ाइल या निर्देशिका नहीं
user3311522

1
@ user3311522 क्या आपने उपयोग किया: sudo npm install n -gइससे पहले sudo -E env "PATH=$PATH" n stable??
लकीलोके

2

मुझे पता है कि यह एक उबंटू मंच है, लेकिन मुझे यकीन है कि यह आरएचईएल जायके पर उसी समस्या के साथ किसी को मदद करेगा, जो मैंने यहां किया था जैसे कि गोग्लड। शायद यह उबंटू में भी काम करता है।

यह दृष्टिकोण है :

ln -s /usr/local/bin/n /usr/bin/n

0

साथ खिलवाड़ से बचने के लिए .npm-globalफ़ोल्डर के रूप में उल्लेख किया है pohest @Edson होरासियो जूनियर द्वारा, और के आधार पर @ जवाब , यहाँ है मैं इसे कैसे तय:

sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it

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


0

मुझे एक समाधान मिला जो मेरे लिए काम करता है। nvmनवीनतम नोड डाउनलोड करने के लिए पैकेज का उपयोग करें ।

  1. नीचे कमांड का उपयोग करके एनवीएम स्थापित करें

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

  1. एनवीएम का उपयोग करने के लिए एक पर्यावरण चर बनाएं
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. nvm -vयदि यह nvmस्थापित नहीं देख पा रहा है, तो नीचे दी गई स्क्रिप्ट को चलाने का प्रयास करें

command -v nvm

  1. नीचे नोड रन कमांड स्थापित करने के लिए

nvm install node

  1. टर्मिनल को पुनरारंभ करने के बाद, नोड के संस्करण की जांच करने का प्रयास करें, इसे अपडेट किया जाना चाहिए

node -v

अधिक जानकारी यहाँ: https://github.com/nvm-sh/nvm


0

इसका मतलब है कि आपके पास सिस्टम में एन स्थापित नहीं है, एन एक एनपीएम-आधारित नोड संस्करण प्रबंधक है। आप इसे नोड के पहले संस्करण को स्थापित करके और फिर चलाकर स्थापित कर सकते हैं

sudo npm install -g n

अब आप n कमांड का उपयोग करके नोड पर संस्करण स्थापित कर सकते हैं

sudo n stable

उपरोक्त नवीनतम स्थिर कगार स्थापित करेगा

sudo n lates

यह lates संस्करण स्थापित करेगा

आप नीचे दिए गए संस्करण को निर्दिष्ट करके विशिष्ट संस्करण भी स्थापित कर सकते हैं

sudo n  10.16.0

0

ऊपर दिए गए किसी भी उत्तर ने मेरे लिए काम नहीं किया। हालाँकि इसने ऐसा किया:

sudo /usr/local/bin/bin/n stable

-1

मुझे एक ही समस्या का सामना करना पड़ा, यह है कि आप इसे कैसे हल कर सकते हैं:

  1. Npm विन्यास उपसर्ग प्राप्त करें
    npm config get prefix 
    // get -> ${myhome}/.npm-global
  2. में निम्नलिखित पंक्तियाँ जोड़ें .zshrc

    # Specify `n` to put the version of `node` in the `.n` directory.
    export N_PREFIX=${myhome}/.npm-global/.n
    
    # Make `nman` command work
    export PATH=${myhome}/.npm-global/bin:$PATH
    
    # Add this line to use `node -v` command
    export PATH=${myhome}/.npm-global/.n/bin:$PATH

संदर्भ: GitHub - tj / n: नोड संस्करण प्रबंधन

संपादक का ध्यान दें: यह उत्तर मूल रूप से चीनी में लिखा गया था और ऑनलाइन टूल का उपयोग करके इसका अनुवाद और संपादन किया गया है। मूल उत्तर देखने के लिए, संशोधन # 1 देखें

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