Npm इंस्टाल पर: अनहेल्ड रिजेक्शन एरर: EACCES: अनुमति अस्वीकृत


271

मैं अपनी npmस्थापना को दूषित करने में कामयाब रहा हूं , और जब भी मैं संकुल का उपयोग करने का प्रयास करता npm installहूं, मुझे इन पंक्तियों के साथ त्रुटि संदेश प्राप्त होते हैं:

अस्वीकृत अस्वीकृति त्रुटि: EACCES: अनुमति से वंचित, '/Users/marknorgate/.npm/_cacache/tmp/a449402d' खोलें

मैंने नोड और एनपीएम को फिर से स्थापित करने की कोशिश की है, और मैंने इन निर्देशों का उपयोग करके अपने npm कैश को कहीं और स्थानांतरित करने का भी प्रयास किया है, लेकिन कुछ भी काम नहीं करता है।

मैं इसे कैसे काम कर सकता हूं?

जवाबों:


924

उपयोगकर्ता के npm संबंधित फ़ोल्डरों के स्वामित्व को वर्तमान उपयोगकर्ता के लिए इस तरह पुनर्स्थापित करें:

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

10
यह मेरे लिए काम करने के बाद मैंने 4-5 अन्य चीजों की कोशिश की जो काम नहीं करती थीं: 1) - असुरक्षित-परमिट, 2) एनपीएम को अपग्रेड करना, 3) पुनरारंभ करना, 4) सुडो के साथ चलना, आदि आदि
एलेक्स यॉर्क

2
मेरे लिए @AlexYork के समान। मैंने अपने उपयोगकर्ता और समूह को पहले से ही उन दोनों के स्वामी के रूप में देखा था, लेकिन मुझे लगता है कि एक उपनिर्देशिका या दो में अलग-अलग स्वामी थे। धन्यवाद!
वेदरन

1
इसने मेरे लिए काम किया :), इससे पहले कि मैं इस डॉक्सNpmjs.com/ ... को आज़मा रहा था । समझने में सक्षम नहीं है अगर इसकी एक ही समस्या या अलग है।
nim118

1
ऐसा लगता है, नोड के साथ मेरे प्रवाह में कुछ बिंदु पर, उन कैश निर्देशिकाओं में से एक rootस्वामित्व के साथ बनाया गया था । इससे सब ठीक हो गया। धन्यवाद!
लोनन फोस्टर

2
यह मेरे लिए काम किया, धन्यवाद! मैंने एक नोड संस्करण प्रबंधक के साथ एनपीएम को फिर से स्थापित करने की कोशिश की, जो एनपीएम द्वारा अनुशंसित है लेकिन यह काम नहीं किया!
विनी फान


42

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

कैश फ़ोल्डर को वर्तमान उपयोगकर्ता के स्वामित्व में होना चाहिए, रूट नहीं।

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

यह सामान्य उपयोगकर्ता अनुमतियों (sudo के रूप में नहीं) के साथ चलने पर उपरोक्त फ़ोल्डरों को स्वामित्व प्रदान करेगा।

यह भी ध्यान देने योग्य है कि आपको SUDO का उपयोग करके वैश्विक पैकेज स्थापित नहीं करने चाहिए। यदि आप अनुमतियों के साथ समस्याओं में भाग लेते हैं, तो यह आपकी वैश्विक निर्देशिका को बदलने के लायक है। डॉक्स सलाह देते हैं:

mkdir ~/.npm-global

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

फिर जहाँ भी आप परिभाषित करते हैं उसमें अपने PATH को अपडेट करना (~ / .profile आदि)

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

फिर आपको यह सुनिश्चित करने की आवश्यकता होगी कि PATH env वैरिएबल सेट है (टर्मिनल को फिर से शुरू या सोर्स कमांड का उपयोग करके)

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally


3
स्पष्ट स्पष्टीकरण के लिए इसे मतदान क्यों करें :)
lognogn

हाँ। यह मेरे लिए समस्या का हल है जब ऊपर "सही समाधान" नहीं था।
जॉन स्मिथ

यह सब सामान एनपीएम द्वारा दूर किया जाना चाहिए, लेकिन इसके बजाय हमें इसे मैन्युअल रूप से निपटना होगा। आपको लगता है कि यह इस तरह की चीजों को ठीक करने के लिए रखरखाव करने वालों के लिए उच्च प्राथमिकता होगी, लेकिन मुझे क्या पता है। यह समझाने के लिए धन्यवाद कि हमें इन आदेशों को करने की आवश्यकता क्यों है !
युंगगुन


9

ऊपर जवाब मेरे लिए काम नहीं किया। बस अपने आदेश को चलाने का प्रयास करें --unsafe-perm

जैसे

npm install -g node@latest --unsafe-perm

यह समस्या को हल करने के लिए लगता है।


@JenLim आपने इसे सुलझाया है या नहीं?
जुनैद फारूक

मैंने टर्मिनल में निम्नलिखित चलाकर समस्या हल की: npm कैश स्पष्ट - बल।
एस्पिन लिम


2

बस फ़ोल्डर बनाने _cache/tmpके अंतर्गत .npmस्थान पर मैन्युअल रूप से /Users/marknorgate/.npm/_cacache/tmpऔर व्यवस्थापक पहुँच के साथ अपने आदेश चला


2
sudo npm install --unsafe-perm=true --allow-root

यह वह था जिसने मेरे लिए काम किया




1

स्वामित्व बदलें

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config 

मैं sudo का उपयोग कर के रूप में स्थापित पैकेज के लिए काम किया


1

इसका उपयोग करने का प्रयास करें: कमांड लाइन पर, अपने घर निर्देशिका में, वैश्विक प्रतिष्ठानों के लिए एक निर्देशिका बनाएं:

mkdir ~/.npm-global

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

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

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

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

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

source ~/.profile

अब उपयोग npm स्थापित यह काम करना चाहिए।


0

आप एक्सपो के लिए निम्नलिखित आदेश की कोशिश कर सकते हैं:

sudo chown -R $USER:$GROUP ~/.expo



-1

यह एक मेरे लिए काम करता है:

sudo chown -R $(whoami) ~/.npm

मैंने उपयोग नहीं किया -gक्योंकि मैं एकमात्र उपयोगकर्ता हूं। मैंने मैकबुक एयर का इस्तेमाल किया।

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