sudo: npm: कमांड नहीं मिली


201

मैं नोड के नवीनतम संस्करण में अपग्रेड करने का प्रयास कर रहा हूं। मैं http://davidwalsh.name/upgrad-nodejs पर निर्देशों का पालन कर रहा हूं

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

sudo npm install -g n

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

sudo: npm: command not found

npm सुडो के बिना काम करता है। जब मैं करता हूं:

whereis node

समझा:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node

चल रहा है:

which npm

दिखाता है:

/usr/local/node/bin/npm

मैंने https://stackoverflow.com/a/5062718/1246159 पर समाधान की कोशिश की

लेकिन मुझे अभी भी वही त्रुटि मिल रही है। मैंने / etc / sudoers फ़ाइल को भी देखा और संबंधित पंक्ति है:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

यह मुझे ठीक लगता है। मैं संभवतः एनपीएम को सूडो कमांड के साथ कैसे काम कर सकता हूं?


4
क्या यह काम करता है? sudo /usr/bin/npm install -g n
रॉबर्टक्लेप

2
क्या आप नोड को पुनः स्थापित करने का प्रयास कर सकते हैं? ऐसा लगता है कि आपने npm को हटा दिया है।
जेफ सोयलर

1
आपने /usr/local/node/binअपने को जोड़ा हो सकता है $PATH, लेकिन इसमें npmस्थापित होना चाहिए /usr/local/bin। पहली निर्देशिका नहीं है secure_pathजिसमें बताया गया है कि sudoइसे क्यों नहीं खोजा जा सकता।
रॉबर्टक्लेप

1
nvmयहाँ उबंटू का उपयोग करना - @robertklep टिप्पणी के साथ, मैंने कोशिश की sudo /home/${user}/.nvm/version/node/${version}/bin/npm installऔर यह काम कर गया।
स्टान पैन गेफेन

2
इसने निम्नलिखित पैकेज से पुन: स्थापित करके मेरी समस्या को हल किया। nodejs.org/en/download
मार्गघूब सुलेमान

जवाबों:


125

Npm फ़ाइल में होना चाहिए /usr/local/bin/npm। यदि यह वहां नहीं है, तो अपनी वेबसाइट पर पैकेज के साथ फिर से नोड स्थापित करें । यह मेरे मामले में काम आया।


धन्यवाद। यदि आप अन्य डेटा ड्राइव में नोड स्थापित करते हैं, जहां ओएस स्थापित नहीं है, तो आप इस पथ को नहीं ढूंढ सकते हैं।
हार्दिक दरजी

1
homebrew के साथ मैक ओएस के मामले में .. करने के लिए दो चरण हैं (1) किस नोड (2) में जो npm है जो दोनों में होना चाहिए / usr / स्थानीय / बिन (जहां homebrew स्थापित / सहानुभूति नोड + npm) ... हल करने के लिए .. प्रयास करें (1) काढ़ा चिकित्सक (2) काढ़ा पुनर्निमित करें नोड अगर इसके अभी भी मुद्दे दे रहे हैं .. अपना रास्ता जांचें (प्रति $ पाथ)। आपके पास कई बिन स्थान होने चाहिए जो विभिन्न नोड प्रतिष्ठानों की ओर इशारा करते हैं..जो कि मामला है ... सफाई करें (जैसा कि इसे बनाने के लिए अपने ~ / .bashrc / ~ / .bash_profile, इसलिए / usr / स्थानीय / बिन में है। एक यादृच्छिक नोड स्थापना की ओर इशारा करते हुए एक और लोड किए बिना।
जिमी एमजी लिम

3
यह एक आंशिक समाधान है। समस्या तब होती है जब आप मैन्युअल रूप से नोड स्थापित करते हैं। आपको प्रत्येक स्थापित बाइनरी को / usr / bin या / usr / लोकल / बिन में सॉफ्टलिंक करना होगा। रूट के bashrc में पथ सेट करना काम नहीं करेगा क्योंकि यह sudo के दौरान पढ़ा नहीं जाता है इसलिए यह एकमात्र तरीका है जब तक कि आप पैकेज स्थापित नहीं करते।
झींगुर

जैसा कि @rrimpwagon ने कहा, मैनुअल निर्देशों के नीचे आपको "sudo ln -s / usr / local / lib / नोडjs / नोड- $ VERSION- $ DISTRO / bin / node / usr / bin / नोड sudo ln -s / लिंक करने के लिए कहता है। usr / स्थानीय / देय / नोडज / नोड- $ संस्करण- $ DISTRO / bin / npm / usr / bin / npm sudo ln -s / usr / local / lib / नोडज / नोड- $ संस्करण - $ DISTRO / bin / npx / usr / bin / npx "
जेम्स नेल्सन

169

मुझे करना था

sudo apt-get install npm

मेरे लिए काम किया।


6
यह समझना मुश्किल है कि आप क्या व्यक्त करना चाहते हैं।
छोटी धूप

4
यह पुराना हो चुका है। मेरे लिए क्या काम किया गया था ये कमांड मुझे यहाँ मिले: github.com/nodesource/distributions#debinstall # Ubuntu कर्ल -sL का उपयोग करके deb.nodesource.com/setup_5.x | sudo -E bash - sudo apt-get install -y nodejs # डेबियन का उपयोग कर, रूट कर्ल -sL के रूप में deb.nodesource.com/setup_5.x | बैश - apt-get -y NodeJS स्थापित
हामेद

4
@tinysunlight Im स्पष्ट नहीं है कि क्या अस्पष्ट है। Op कहता है कि npm कमांड गायब है। यह कमांड npm कमांड को स्थापित करता है।
वेलोकिबैडरी

7
यह प्रश्न का सही उत्तर नहीं है क्योंकि यह उस ऑप से स्पष्ट है जो npmपहले से स्थापित है लेकिन सूडो के माध्यम से आह्वान करने पर उपलब्ध नहीं है। इस समाधान के साथ आप npm को पुनर्स्थापित करते हैं जो पहले से मौजूद है। यह कारण खोजने के बजाय लक्षणों से लड़ रहा है। मैं समझता हूं कि यह कुछ लोगों के लिए टूटी हुई चीजों को सही कर सकता है, लेकिन यह भ्रामक है, इस तरह से खड़ा है।
डोमिनिक

4
जब मैंने Ubuntu पर १०.१० पर NVM का उपयोग करके नोड स्थापित किया, तो sudo कमांड के रूप में npm को नहीं पहचानता है। sudo apt-get install npmमेरे लिए काम किया।
एलियनकेविन

91

मैक उपयोगकर्ताओं के लिए, निम्न चरणों ने मेरे लिए काम किया।

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 

5
brew uninstall nodeमेरे लिए काम नहीं किया है, लेकिन मैं के साथ आगे बढ़ाया brew install nodeऔर brew postinstallऔर यह समस्या ठीक हो गई। धन्यवाद
ट्रेवर

2
brew postinstallवास्तव में क्या करता है?
ओलिवर डी

होमब्रे संस्करण में 2.2.14 brew postinstallनिरर्थक है
अर्सलान खान

63

मुझे भी यही समस्या थी; इसे ठीक करने के लिए यहां आदेश दिए गए हैं:

  • sudo ln -s /usr/local/bin/node /usr/bin/node
  • sudo ln -s /usr/local/lib/node /usr/lib/node
  • sudo ln -s /usr/local/bin/npm /usr/bin/npm
  • sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

2
CentOS 7 पर मेरे लिए काम किया
hirikarate

4
मेरे लिए Ubuntu 16.04.1 LTS काम किया। मैं NVM का उपयोग करता हूँ इसलिए पहला रास्ता था जहाँ NVM ने नोड और npm स्थापित किया था (पथ में एक संस्करण शामिल है %HOME%/.nvm/versions/node/v7.4.0/bin/npm)। दुर्भाग्यपूर्ण है कि मुझे इस उत्तर को प्रत्येक बार एनवीएम का उपयोग करके अपडेट करना होगा कि मार्ग में संस्करण कैसे बदलेगा
कास

1
यह मेरे लिए भी हल कर दिया! मूल रूप से स्टैक ओवरफ्लो पर पोस्ट किया गया: EC2 पर: sudo नोड कमांड नहीं मिला, लेकिन sudo के बिना नोड ठीक है
डॉमिनिक

2
@kas sudo ln -s $(whereis node) /usr/bin/node और इतने पर। अपने बैश प्रोफाइल में।
अरविंद वोगगु

मेरे लिए AWS ec2 उदाहरण में काम किया।
चिराग पुरोहित

26

चेतावनी (संपादित करें)

कर रहा chmod 777है एक काफी कट्टरपंथी समाधान है। इन सबसे पहले प्रयास करें, एक समय में एक, और जब एक काम बंद हो जाए:

  • $ sudo chmod -R 777 /usr/local/lib/node_modules/npm
  • $ sudo chmod -R 777 /usr/local/lib/node_modules
  • $ sudo chmod g+w /usr/local/lib
  • $ sudo chmod g+rwx /usr/local/lib

$ brew postinstall node केवल वही हिस्सा है जहाँ मुझे कोई समस्या होगी

Permission denied - /usr/local/lib/node_modules/npm/.github

तो मैं

// !! READ EDIT ABOVE BEFORE RUNNING THIS CODE !!
$ sudo chmod -R 777 /usr/local/lib
$ brew postinstall node

और वायोला, एनपीएम अब जुड़ा हुआ है

$ npm -v
3.10.10

अतिरिक्त

यदि आप के लिए इस्तेमाल किया -R 777पर lib मेरी सिफारिश एक डिफ़ॉल्ट सेटिंग के लिए नेस्टेड फ़ाइलें और निर्देशिका स्थापित करने के लिए किया जाएगा:

  • $ find /usr/local/lib -type f -print -exec chmod 644 {} \;
  • $ find /usr/local/lib -type d -print -exec chmod 755 {} \;
  • $ chmod /usr/local/lib 755

3
@Jacksonkr ..... क्या आपने सिर्फ 777 पूरे स्थानीय / परिवाद फ़ोल्डर को चोदने की सिफारिश की है?
sfratini

chmodयह निर्देशिका क्या होनी चाहिए?
टाइम_डिज़

1
@tim_xyz drwxr-xr-xlib के लिए चूक हैं। कहा कि, -Rफ़ोल्डर वापस सेट करते समय पुनरावर्ती सुविधा का उपयोग न करें ।
जैक्सनक्र सिप

धन्यवाद! सुडो चामोद -R 777 / usr / लोकल / लिब / नोड_मॉडल ने मेरे लिए काम किया
हिसाग्र


8

CentOS उपयोगकर्ताओं के लिए, यह मेरे लिए काम करता है:

sudo yum install npm

1
इस दृष्टिकोण के साथ समस्या यह है कि उदाहरण के लिए फेडोरा में, यह dnf / yum repos में बहुत पुराना है
ACV

2
CentOS 7 पर आपको पहले EPEL रेपो को सक्षम करना होगा:yum install epel-release; yum install npm
hudolejev

8

सुपो अनुमति के साथ विश्व स्तर पर एनपीएम पैकेज स्थापित करने के लिए, /usr/bin/npmउपलब्ध होना चाहिए। यदि npmकिसी अन्य निर्देशिका पर मौजूद है, तो एक सॉफ्ट लिंक बनाएं:

sudo ln -s /usr/local/bin/npm /usr/bin/npm

यह फेडोरा 25, नोड 8.0.0 और npm5.0.0 पर काम करता है


6

MacOS पर, इसने मेरे लिए काम किया:

brew reinstall node

1
क्षमा करें, इस प्रश्न को केवल टैग किया गया है unix, लेकिन यह तब भी मददगार हो सकता है क्योंकि यह "macos npm कमांड नहीं मिला" के लिए शीर्ष Google खोज परिणाम है
friederbluemle

5

नोड दर्ज करने के बाद डेबियन के लिए

curl -k -O -L https://npmjs.org/install.sh    
ln -s /usr/bin/nodejs /usr/bin/node  
sh install.sh

5

यदि आपने nvm के साथ नोड / एनपीएम स्थापित किया है, तो इससे पहले कि आप पैकेज का उपयोग कर सकें, एनवीएम पर्यावरण कॉन्फ़िगरेशन फ़ाइल को चलाना होगा।

यह आम तौर पर ~ / .nvm / nvm.sh में पाया जाता है।

इसे अपने आप चलाने के लिए, शामिल करें:

source ~/.nvm/nvm.sh

अपने उपयोगकर्ता के लिए .bash_profile फ़ाइल में

यदि आप उस उपयोगकर्ता के साथ sudo का उपयोग करना चाहते हैं, तो sudo को उपयोगकर्ता वातावरण सेट करने के लिए -i पैरामीटर को शामिल करना सुनिश्चित करें। जैसे

sudo -iu jenkins npm install grunt-cli

4

बस पुनर्स्थापित करें।

RHEL, CentOS और फेडोरा पर

sudo yum remove nodejs npm
sudo dnf remove nodejs npm   [On Fedora 22+ versions]

फिर

yum -y install nodejs npm
dnf -y install nodejs npm   [On Fedora 22+ versions]

आसान! .. नोड और एनपीएम दोनों अब एक आकर्षण की तरह काम करते हैं!


3

मैंने इस समस्या को हल कर दिया

apt-get install npm2deb

1
इसका जवाब क्या है npm2deb 15:56 पर एक 3 पार्टी
ब्यू बुचर्ड

1
यह पूरी तरह से "विश्वसनीय" नहीं है क्योंकि तीसरे पक्ष में सीधे npm से स्रोत से अधिक समझौता किया जा सकता है। मुझे npm2deb के बारे में कुछ भी पता नहीं है, लेकिन इस बारे में सोचें कि क्या आप इसे अपनी कंपनी में इस्तेमाल करना चाहते हैं, तो वे शायद इसे ऑडिट करने के लिए सख्त होंगे
काइल कैलिका-सेंट

यह सभी के लिए स्पष्ट है।
Игорь Демянюк 12

1

मेरे पास एक ही मुद्दा था, इसका कारण था npm पैकेज प्रबंधक नोड स्थापित करते समय स्थापित नहीं किया गया था। यह निम्नलिखित गलती के कारण हुआ था: इंस्टॉलेशन प्रक्रिया में "कस्टम सेटअप" नामक एक चरण होता है, यहां आपके पास निम्न में से कोई एक चुनने का विकल्प होता है: 1) Node.js रनटाइम (यह डिफ़ॉल्ट रूप से चुना जाता है)। 2) एनपीएम पैकेज मैनेजर 3) ऑनलाइन प्रलेखन शॉर्टकट। 4) पथ में जोड़ें। यदि आप आगे बढ़ते हैं तो यह npm पैकेज प्रबंधक स्थापित नहीं किया जाएगा और इसलिए आपको त्रुटि मिलेगी।

समाधान: जब आपको ये विकल्प मिलें तो npm पैकेज मैनेजर चुनें। इसने मेरे लिए काम किया।


1

यदि आपने नोड पैकेज डाउनलोड किया है और कहीं बाहर निकाला है /optतो आप बस अंदर प्रतीकात्मक लिंक बना सकते हैं /usr/local/bin

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

1

मुझे होमस्टेड में भी यही मुद्दा मिला और कई तरीके आजमाए। मैंने कोशिश की

sudo apt-get install नोडज

मुझे निम्नलिखित त्रुटि मिलती है:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

अंत में मैंने कोशिश की

sudo apt-get dist-upgrade

यह ठीक काम किया।

root@homestead:/usr/local/bin# npm -v
3.10.10

root@homestead:/usr/local/bin# node -v
v6.13.0

1

मेरा समाधान है:

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

मेरे लिए ठीक काम करता है।

इसे यहां देखें: https://stackoverflow.com/a/29400598/861615

ऐसा इसलिए होता है क्योंकि आपके पास डिफ़ॉल्ट वैश्विक संकुल निर्देशिका होती है


0

सुदो पथ के लिए npm द्विआधारी पथ को विज़ुडो और संपादन "safe_path" का उपयोग करके जोड़ा गया

अब "sudo npm" काम करता है


0

पूरी तरह से नोड निकालें:

  brew uninstall --force node

फिर से स्थापित करें:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

0

अगर rh-*यह मेरे लिए काम करने वाले पैकेजों का उपयोग करता है, तो यह उपयोगी हो सकता है:

sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm

0

चूंकि मैंने नोड.js पर उपलब्ध .tar फ़ाइल का उपयोग करके नोड.जेएस स्थापित किया है, इसलिए मुझे नोड गाइड का स्थान यहां पर रखना होगा:

~ / .Bashrc

कमांड का उपयोग करके सामान्य उपयोगकर्ता से रूट में बदलकर:

सूदो -आई

फिर मुझे नोड के लिए रास्ता जोड़ना पड़ा जहाँ मैंने इसे .bashrc फ़ाइल में नीचे के रूप में निकाला: यहां छवि विवरण दर्ज करें

फिर संदर्भित .bashrc का उपयोग कर रहा है

। ~ / .Bashrc

इसके बाद

npm: command not found

चला गया


0

मेरे लिए काम वैश्विक स्तर पर संकुल स्थापित करते समय EACCES अनुमतियों को हल करने की अनुमति

अनुमतियों की त्रुटियों की संभावना को कम करने के लिए, आप एक अलग निर्देशिका का उपयोग करने के लिए npm कॉन्फ़िगर कर सकते हैं। इस उदाहरण में, आप अपने घर निर्देशिका में छिपी निर्देशिका बना और उपयोग करेंगे।

अपने कंप्यूटर का बैकअप लो। अपने होम डायरेक्टरी में कमांड लाइन पर, वैश्विक संस्थापनों के लिए एक निर्देशिका बनाएँ:

 mkdir ~/.npm-global

नई निर्देशिका पथ का उपयोग करने के लिए npm कॉन्फ़िगर करें:

 npm config set prefix '~/.npm-global'

अपने पसंदीदा पाठ संपादक में, एक ~ / .profile फ़ाइल खोलें या बनाएं और इस पंक्ति को जोड़ें:

 export PATH=~/.npm-global/bin:$PATH

कमांड लाइन पर, अपने सिस्टम चर को अपडेट करें:

 source ~/.profile

अपने नए कॉन्फ़िगरेशन का परीक्षण करने के लिए, sudo का उपयोग किए बिना विश्व स्तर पर एक पैकेज स्थापित करें:

 npm install -g jshint

0

मेरे लिए, Homebrew का उपयोग करके ऊपर वर्णित किसी भी विधि ने macOS पर काम नहीं किया। इसलिए, मैंने Homebrew का उपयोग करके नोड की स्थापना रद्द की और https://nodejs.org/en/download/ से नोड पैकेज डाउनलोड किया और इसे स्थापित किया। इसने एक जादू की तरह काम किया।


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