NPM नवीनतम उबंटू (18.04) इंस्टॉलेशन पर गलत संस्करण है


19

सामान्य स्थापना sudo apt install nodejsNode.js को स्थापित करने और फिर sudo apt install npmनोड पैकेज प्रबंधक को स्थापित करने के लिए होगी। हालांकि, ऐसा करने पर npm -vकहते हैं 3.5.2। सामान्य रूप से अपग्रेड करने के लिए, मैं करता हूं sudo npm install -g npm, जो नवीनतम संस्करण में अपडेट होता है (जो, इस लेख को लिखने के समय है 6.0.1)।

जब मैं एक करता which npmहूं, मुझे मिलता है /usr/local/bin/npm, हालांकि aptएक सिमलिंक को स्थापित करता है /usr/bin/npm। अगर मैं sudo apt purge npmnpm को हटाऊं, तो यह अभी भी npm के npm संस्करण को छोड़ता है /usr/local/bin/npm, फिर भी npm -vकहता है -bash: /usr/bin/npm: No such file or directory

कई लेख नोड्ज को स्थापित करने के लिए एक पीपीए का उपयोग करने के लिए कहते हैं, लेकिन मुझे लगता है कि इसके माध्यम से करने के लिए एक देशी तरीका होना चाहिए apt

सामान्य रूप से और PPA के माध्यम से संस्थापन पर DigitalOcean निर्देश: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04

PPA के माध्यम से स्थापना पर TecAdmin निर्देश: https://tecadmin.net/install-latest-nodejs-npm-on-ubuntu/

जवाबों:


33

TLDR: यह समस्या Bashnpm कमांड के मार्ग को कैशिंग करने के कारण होती है , और इससे हल किया जा सकता है hash -d npmapt purgeजब तक आप नहीं चाहते हैं, तब तक आपको निपटने की आवश्यकता नहीं है।

व्याख्या

यहाँ npmउबंटू पर एक नया संस्करण प्राप्त करने के लिए मेरे कदम थे । सबसे पहले, स्थापना के रूप में ओपी का वर्णन है:

$ sudo apt-get install npm
(...apt installation of npm was successful...)
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ sudo npm install -g npm
(...npm installation of npm was successful...so far, so good)

आप देख सकते हैं कि नया संस्करण पहले से ही ठीक काम कर रहा है /usr/local/bin/npm, लेकिन दुर्भाग्य से बैश कैश अभी भी है /usr/bin/npm:

$ /usr/local/bin/npm -v
6.4.1
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ type npm
npm is hashed (/usr/bin/npm)

समस्या को ठीक करने के लिए, इसे बश कैश से साफ़ करें (सभी खुले गोले में ऐसा करें):

$ hash -d npm

अब नया संस्करण वांछित के रूप में काम करता है:

$ npm -v
6.4.1
$ command -v npm
/usr/local/bin/npm

1
मुझे वास्तव में यह उत्तर अपने से बेहतर लगता है।
ब्लेयर 23

इससे मेरी समस्या हल हो गई। बहुत बहुत धन्यवाद। महान व्याख्या, भी। मेरे लिए एक बात जो अस्पष्ट है, वह यह है कि बैश कैश क्लीयर करने से समस्या का समाधान कैसे होता है। क्या npmसंग्रहित को हटाना बेहतर नहीं होगा /usr/bin/npm? और बैश कैश क्लियर करने के बाद सही वर्जन क्यों उठाया जाता है, अगर दोनों वर्जन इंस्टॉल रहते हैं?
temporary_user_name

12

जिस तरह से मैंने पाया है कि npm के माध्यम से शुद्ध करना है sudo apt purge npm, तो बस के माध्यम से वैश्विक स्थापना के लिए एक सिमलिंक को फिर से बनाना है ln -s /usr/local/bin/npm /usr/bin/npm। उस फिक्स के बाद, उम्मीद के मुताबिक npm -vरिटर्न 6.0.1


2
Android 6.0.1 पर UserLAnd के माध्यम से चलने वाले Ubuntu 18.04 के साथ काम किया । धन्यवाद! :)
l3l_aze

1
ओपी आपको इसे उत्तर के रूप में चिह्नित करना चाहिए।
रॉबर्ट मुन्न

अजीब बात है, मेरे लिए यह काफी अलग था। मेरे पास अद्यतित संस्करण था /usr/bin/npm, इसलिए मैं विपरीत मार्ग का उपयोग कर गया ln -s /usr/bin/npm /usr/local/bin/npm। अजीब बात है, लेकिन आपके उत्तर ने मुझे यह पता लगाने में मदद की कि गलत संस्करण समस्या से कैसे निपटें।
लॉर्डअनोमैंडर

2

स्थापित npm संस्करण पर नियंत्रण रखने के लिए, मैं हमेशा nvm(नोड संस्करण नियंत्रण) का उपयोग करता हूं । आप इसे यहां दिए गए निर्देशों के माध्यम से स्थापित कर सकते हैं: https://github.com/creationix/nvm फिर निम्न आदेश द्वारा अपने कंप्यूटर पर नवीनतम npm स्थापित करें:

nvm install node

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