npm अद्यतन जाँच विफल


14

मैं वास्तव में अपने ubuntu 17.04 पर npm के साथ नोडज स्थापित करने की कोशिश कर रहा था। मैंने nodejs.org से लिनक्स संस्करण डाउनलोड किया और नोड और नोडज के लिए सॉफ्ट लिंक बनाया। नोडज के संस्करण की जांच करने पर यह उस संस्करण को दिखाता है जिसे मैंने स्थापित किया है और मैं इसके साथ ठीक हूं।

अब मैंने npm के लिए भी ऐसा ही करने की कोशिश की। मैंने npm के लिए सॉफ्ट लिंक बनाने की कोशिश की।

 sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm 
    /usr/bin/npm

मुझे नहीं पता कि मैंने जो लिंक बनाया है वह सही है या नहीं। लेकिन npm -vकमांड चलाने पर मुझे संस्करण 5.0.3 दिखाई देता है जो कि मैं स्थापित करने की कोशिश कर रहा हूं। संस्करण दिखाया गया है, लेकिन इसके ठीक नीचे मुझे कुछ इस तरह दिखाई देता है।

5.0.3
npm update check failed                 │
│           Try running with sudo or get access           │
│          to the local update config store via           │
│ sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config 

क्या आपको sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configसलाह दी गई?
जॉर्ज उडेन

यदि आप डॉकर का उपयोग कर रहे हैं, तो फ़ाइल सिस्टम केवल पढ़ने के लिए डबल जांचें। यह लिखने योग्य होना चाहिए।
Константин Ван

जवाबों:


14

मेरा npm संस्करण 5.0.3 है और जब मैं किसी npm कमांड का उपयोग करता हूं तो मुझे भी यही समस्या होती है:

npm त्रुटि संदेश

कमांड ठीक काम कर रहा है, लेकिन यह कोड बिना किसी स्पष्ट कारण के दिखाता है। मैंने इन आदेशों के साथ 5.0.3 से 5.2.0 तक अपडेट किया है:

sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config

npm install -g npmया npm i -g npm

अब npm ठीक काम कर रहा है।


मेरे लिए काम किया। हालाँकि, मुझे npmरूट के साथ अपडेट करना था sudo npm i -g npm। एनपीएम 6.0.1 को अपडेट किया गया
डेनियलोस

3

मेरे लिए एक ही मुद्दा है, लेकिन संस्करण से संबंधित नहीं लगता है (मैं npm 5.5.1 का उपयोग कर रहा हूं)। ~/.configमेरे लिए किए गए अधिकारों को ठीक करना:

sudo chown -R $USER:$(id -gn $USER) ~/.config

मुझे लगता है कि यह कुछ मालिक मुद्दे से संबंधित है ~/.config/configstore/update-notifier-npm.json


1

मैंने का मालिक बदल दिया था

~/configstore

तथा

~/configstore/update-notifier-npm.json

से $ USER: $ USER।

मेरा अनुमान है कि npmसुडो के साथ दौड़ने से वह फाइल बन गई। मेरे सिस्टम पर कम से कम हमें यह पता चलता है:

$ env | grep  -e HOME= -e "^USER="
USER=craig
HOME=/home/craig

$ sudo env | grep  -e HOME= -e "^USER="
HOME=/home/craig
USER=root

इसलिए यदि इसे sudo npmबनाने के लिए कोडित किया ~/configstore/update-notifier-npm.jsonगया है तो यह सामान्य उपयोगकर्ता के होम डायरेक्टरी को करने वाला है। यह तब समस्या पैदा करता है जब बाद में npmबिना भाग के sudoभी पढ़ना चाहता है और शायद लिखना चाहता है ~/configstore/update-notifier-npm.json। किसी कारण से दोनों पर अनुमतियाँ 600 हैं।

सतर्क रहें जब chownऔर chmodसब कुछ के तहत आईएनजी ~/.config, वहाँ वहाँ कुछ संवेदनशील हो सकता है।


1

कृपया, त्रुटि संदेश में दिए गए chownकमांड का उपयोग न करें । पथ ~/.configका उपयोग कई अनुप्रयोगों द्वारा किया जाता है और कॉन्फ़िगरेशन जानकारी संग्रहीत करने के लिए एक मानक पथ है। वहां समूह के अधिकारों को बदलने की सिफारिश नहीं की गई है। बेहतर केवल आवश्यक पथ को बदल देता है जैसे:

sudo chown -R $USER ~/.config/configstore

विशेष मामला: डॉकटर

इस त्रुटि को प्राप्त करने के लिए एक सामान्य मामला डॉकटर की तरह कुछ का उपयोग कर रहा है (विशेषकर अपने खुद के घर में बढ़ते हुए)। जैसे पर्यावरण चर सेट करने पर विचार करें NPM_CONFIG_CACHEऔर XDG_CONFIG_HOME। पहले वाला आपके कैश पथ को सेट करता है और अंतिम आपके कॉन्फ़िगर पथ को सेट कर रहा है। मैं .configफ़ाइल स्वामित्व के साथ समस्याओं से बचने के लिए होम निर्देशिका में फ़ोल्डर का उपयोग नहीं करूंगा । लेकिन कैश का उपयोग बैंडविथ को बचाने के लिए एनपीएम जैसी सेवाओं में मदद करता है। हर बिल्ड पर अत्यधिक डाउनलोड से बचने और इस तरह से कुछ का उपयोग करने की कोशिश करें (लेकिन जांच लें कि लक्ष्य की तरह /tmpपर्याप्त डिस्क स्थान है):

test -d /tmp/$USER/cache || mkdir -p /tmp/$USER/cache
docker run \
  -v /tmp/$USER:/tmp/$USER \
  -e "NPM_CONFIG_CACHE=/tmp/$USER/cache/npm" \
  -e "XDG_CONFIG_HOME=/tmp/$USER/cache/" \
  ...

0

ठीक है, पहली बात हम इस मुद्दे को हल करने के लिए कर सकते हैं

  1. सुनिश्चित करें कि आपने छिपी हुई फ़ाइलों को देखने के लिए फ़ोल्डर सेटिंग में एक विकल्प टिक किया है।
  2. .Config फ़ाइल पर राइट क्लिक करें और गुण चुनें और फिर परमिशन टैब पर क्लिक करें।
  3. समूह के लिए फ़ोल्डर अनुमतियाँ और फ़ाइल अनुमतियाँ | मालिक | दूसरों ने पढ़ा, लिखना और विकल्पों पर अमल करना।
  4. संलग्न फ़ाइलों पर अनुमतियाँ लागू करें पर नीचे क्लिक करें।
  5. अब उन्हीं npm कमांड को फिर से चलाने का प्रयास करें जहाँ आप उन संदेशों को देख रहे थे और अब इसे हमेशा के लिए छोड़ दिया जाना चाहिए।

यदि इससे आपको पता चल जाए कि क्या करना है।

नोट: समान प्रक्रिया को .config फ़ोल्डर के अंदर अकेले विन्यास के लिए भी लागू किया जा सकता है।

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