त्रुटि: संसाधन: अनुमति से इनकार किया


97

मैं एनपीएम इंस्टॉलेशन रन करता हूं, लेकिन यह एरर: EACCES: अनुमति अस्वीकृत त्रुटि को फेंकता है । मुझे पता है कि यह अनुमति का मुद्दा है लेकिन जहां तक ​​मुझे पता है, स्थानीय स्तर पर नोड मॉड्यूल स्थापित करने के लिए sudo अनुमति की आवश्यकता नहीं है। अगर मैं इसे sudo के साथ चलाता हूं, तो यह ~ / node_modules फ़ोल्डर के अंदर स्थापित हो जाता है। drwxrwxr-x मौजूदा फ़ोल्डर की फ़ाइल अनुमति है। मैं समझ नहीं पा रहा हूं कि क्या गलत हो सकता है।

नीचे त्रुटि संदेश है।

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log

फ़ोल्डर node_modulesरूट का मालिक है ?
एजेएस

नोड_मॉडल फ़ोल्डर अभी तक फ़ोल्डर के अंदर नहीं बनाया गया है जिसमें मैं लॉश स्थापित करना चाहता हूं।
xrupronics

क्या आपने npm को अपने / घर / रूपेश / निर्देशिका या किसी अन्य निर्देशिका में स्थापित किया है?
एजेएस

फ़ोल्डर का पथ जिसमें मैं npm स्थापित करता हूं ~ / डेस्कटॉप / es6
xruptronics

ls -l ~/Desktop | grep es6व्हाट्सएप का आउटपुट सुनिश्चित करता है कि आप es6 डायरेक्टरी के मालिक हैं
AJS

जवाबों:


78

यह आदेश समस्या को हल करता है। इसने मेरे लिए काम किया:

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

मेरे जैसे किसी के लिए, जबकि यह कमांड लिखने के समय काम करती प्रतीत होती है, नोड के लिए v10.10.0मुझे निम्नलिखित त्रुटि मिली: "pmpm ERR! स्थापित नहीं कर सकता / var / www / प्रोजेक्ट: गुम पैकेज का नाम"
वेन स्मॉलमैन

1
झंडे --unsafe-perm = true --allow-root ने हमारे लिए नोड v10.15.0 का उपयोग करने के लिए काम किया, ताकि उपयोगकर्ता रूट को एक मौजूदा एप्लिकेशन के रूप में स्थापित कर सके जहां नोड-एसएएस स्थापित नहीं होगा। सटीक कमांड जिसे हम स्थानीय निर्देशिका नोड_मॉडल्स फ़ोल्डर में नोड-एसएएस स्थापित करने के लिए उपयोग करते थे, # npm स्थापित था - save-dev --unsafe-perm = true --allow-root नोड-sass @ नवीनतम
पीटर एडवर्ड्स

आप समस्या को हल करने के लिए रूट का उपयोग कर सकते हैं (हालांकि यह अनुशंसित नहीं है)।
क्रिस मैरोटा

मैं उन झंडे का उपयोग करके काम करने में सक्षम था इसलिए वास्तव में इसका उत्तर है: sudo npm install -g --unsafe-perm = true --allow-root <package-name> @ <version-name>
Frank Hu MSFT

45

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

ऊपर दिए गए चरणों का उल्लेख करें: प्रारंभ करने से पहले अपने कंप्यूटर का बैकअप लें।

वैश्विक प्रतिष्ठानों के लिए एक निर्देशिका बनाएं:

1। mkdir ~/.npm-global

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

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

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

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

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

4।source ~/.profile

टेस्ट: सुडो का उपयोग किए बिना विश्व स्तर पर एक पैकेज डाउनलोड करें

npm install -g jshint

2-4 चरणों के बजाय, आप संबंधित ईएनवी चर का उपयोग कर सकते हैं (उदाहरण के लिए यदि आप संशोधित नहीं करना चाहते हैं ~ / .profile):

NPM_CONFIG_PREFIX=~/.npm-global

1
मोजावे पर काम किया। समस्या निवारण के 4-5 बजे के बाद बहुत धन्यवाद, इसने चाल चली!
जॉनी

11

Npm init का उपयोग करके package.json बनाने से मेरी समस्या हल हो गई।


लेकिन मुझे यकीन नहीं है कि Package.json फाइल की आवश्यकता क्यों है क्योंकि नोड मॉड्यूल को package.json के रूप में स्थापित किया जा रहा है। फ़ाइल को मेरे मामले में अद्यतन या उपयोग नहीं किया गया है क्योंकि मैंने --save या --save-dev या समान कमांड का उपयोग नहीं किया है।
१२:२६ पर xrupronics

यह अजीब है। मुझे लगता है कि आपके npm कॉन्फिडेंस में कुछ चीज़ गड़बड़ा गई थी और इसे init रीसेट कर दिया, वैसे भी यह हमेशा के लिए एक रहस्य होना चाहिए क्योंकि मुझे एक समान समस्या का एक भी संदर्भ कहीं और नहीं मिला।
एजेएस

Npm 6.9.0 के साथ इसी तरह का मुद्दा था और यह मेरे लिए भी काम करता है।
क्रिस मैरोटा

11

मुझे लिनक्स पर समस्या थी। मैंने लिखा

chown -R myUserName ./* 

मेरे प्रोजेक्ट फ़ोल्डर में।


6
बहुत अप्राप्य है। जो आपकी सभी निर्देशिकाओं को छूता है और उनमें से किसी पर भी मूल अधिकार को हटा देता है। यदि कुछ चीजों को रूट के रूप में सेट करने की आवश्यकता है, तो यह आपके वर्तमान कॉन्फ़िगरेशन को नष्ट कर देता है।
पैट्रिक डा सिल्वा

7

आपके द्वारा पोस्ट किए गए आपके लॉग में मैं क्या देख सकता हूं:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

निर्देशिका के /home/rupesh/node_modules/लिए निर्देशिका बनाने के लिए आवश्यक अनुमति नहीं है, इसलिए chown -r rupesh:rupesh /home/rupesh/node_modules/इसे चलाने के लिए इसे हल करना चाहिए।


Doing chown -R rupesh: rupesh / home / rupesh / node_modules / और रनिंग npm install लताड़ को फिर से ~ / node_module फ़ोल्डर में स्थापित करें। लेकिन इस बार यह एरर नहीं फेंकता। लेकिन यह वह जगह नहीं है जहां मैं स्थापित करने का इरादा रखता हूं।
xrupronics

हाँ, मुझे पता है कि आपको डेस्कटॉप के बजाय अपने होम डायरेक्टरी में प्रोजेक्ट बनाना चाहिए। किसी कारण के लिए npm किसी कारण से अपने मॉड्यूल स्थापित /home/rupesh/node_modulesकर रहा है। किसी भी तरह से अपने घर निर्देशिका में काम करना आदर्श होना चाहिए
AJS

मुझे लगता है कि ~ / प्रोजेक्ट्स / es6 ~ / डेस्कटॉप / es6 संरचना के बराबर है। मुझे पता लगाने में परेशानी हो रही है कि es6 फ़ोल्डर के अंदर नोड_मॉड्यूल्स क्यों नहीं बनाया गया है और उसके अंदर क्यों नहीं (या जो भी) मॉड्यूल स्थापित नहीं है। मैंने पहले इस मुद्दे का सामना नहीं किया था, लेकिन आज क्या गलत हो गया, यही मैं जानना चाहता हूं।
xrupronics

हाँ, मैंने अपनी पिछली दो टिप्पणी पढ़ी और मूर्खता का एहसास किया :), अच्छी तरह से मैंने चारों ओर देखा और किसी और को भी यही समस्या नहीं मिली। क्या आपका कोड loadashमॉड्यूल खोजने में सक्षम है ?
एजेएस

6

इसमें others(rx) के लिए लिखने की अनुमति नहीं है । के साथ प्रयास करें

chmod a+w <folder>

और दोहराओ।


2
प्रत्येक फ़ोल्डर में प्रत्येक पर इसका उपयोग करने से रोकने के लिए chownएक -rविकल्प नहीं है node_modules?
ड्रेकसन

@ जुआनजो साल्वाडोर यह काम नहीं किया। यह एक ही त्रुटि फेंकता है।
9 सितंबर को xrupronics

@DrakaSAN हाँ, गाउन एक पुनरावर्ती विकल्प है।
जुआनजो साल्वाडोर

6

इसने मेरी समस्या को सीधे हल कर दिया - मैक मोजवे 10.14.6 - PhpStorm।

अनहेल्ड रिजेक्ट एरर: EACCES: अनुमति अस्वीकृत, mkdir '/User/myname/.npm/_cacache/index-v5/fb/5a'

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

मूल पोस्ट: https://stackoverflow.com/a/50639828


4

FWIW मैं एक ही लक्षण था, लेकिन एक अलग पैकेज के साथ। बनाना package.jsonऔर चलाना नहींnpm init था मेरी समस्या का समाधान।

इस प्रणाली पर, मूल रूप से इस स्थान पर नए फ़ोल्डर रूट अनुमतियों के साथ बनाए जा रहे थे। दौरानnpm install , नए फ़ोल्डर बनाए जाते हैं। यह npm को स्थापित करने के लिए partway, यहां तक ​​कि sudo के साथ विफल हो गया।

इसका समाधान npm install appएक अलग स्थान पर बिना रूट ऑमस्क के चलाना था ।


4

नीचे दिए गए आदेश के साथ अपने प्रोजेक्ट फ़ोल्डर को सभी अनुमति देने का प्रयास करें

sudo chmod -R 777 /yourProjectDirectoryName

साथ दौड़ो

sudo npm install lodash

यह एक जूनियर समाधान है
पाब्लो पापालार्डो

आपको 777 की भी आवश्यकता नहीं हो सकती है। मेरे लिए समस्या सिर्फ # बहुत कम थी। (775 इसे तय किया।)
एंड्रयू

"किसी फ़ाइल या निर्देशिका के लिए 777 अनुमतियों को सेट करने का मतलब है कि यह सभी उपयोगकर्ताओं द्वारा पठनीय, योग्य और निष्पादन योग्य होगी और भारी सुरक्षा जोखिम पैदा कर सकती है।" - linuxize.com/post/what-does-chmod-777-mean
MillerC

4

एक संबंधित मुद्दा:

कई दिनों तक फैले 3 घंटे बर्बाद।

नीचे काम किया AWS EC2 मशीन पर:

sudo chown -R $(whoami) /home/ubuntu/.cache
sudo chown -R $(whoami) /home/ubuntu/.config
sudo chown -R $(whoami) /home/ubuntu/.local
sudo chown -R $(whoami) /home/ubuntu/.npm
sudo chown -R $(whoami) /home/ubuntu/.pm2

उम्मीद है की वो मदद करदे।


3

मैंने अपनी npm निर्देशिका की अनुमति को बदलकर इस समस्या को हल किया। मैं मेरे लिए npm वैश्विक निर्देशिका में गया था

/home/<user-name>

मैं इस आदेश को दर्ज करके इस निर्देशिका में गया

cd /home/<user-name>

और फिर इस कमांड को दर्ज करके .npm फोल्डर की अनुमति बदल दी।

sudo chmod -R 777 ".npm"

यह मेरे लिए एक आकर्षण की तरह काम करता था। लेकिन इस के साथ एक सुरक्षा दोष है अर्थात आपका वैश्विक संकुल निर्देशिका सभी स्तरों तक पहुँच योग्य है।


आप पूरी दुनिया को इस विशेष फ़ोल्डर तक पहुंचने की अनुमति क्यों देंगे?
एगडविद

2

पहले रूट पर बिना -g (वैश्विक) स्थापित करें। -G (वैश्विक) का उपयोग करने की कोशिश के बाद यह मेरे लिए काम किया।


काम किया !! मैक पर मेरे कोड फ़ोल्डर को मेरे रूट फ़ोल्डर में स्थानांतरित किया गया: हार्डड्राइव /, और "एनपीएम इंस्टॉल" त्रुटिपूर्ण रूप से चला। फिर मैंने अपना कोड फ़ोल्डर वापस ले लिया, जहां मैं इसे हार्डड्राइव / उपयोगकर्ताओं / myUserName / परियोजनाओं / कोड के अंदर चाहता था, फिर से "npm इंस्टॉल" चला, और इस बार, यह काम किया।
जोश

2

LUBUNTU 19.10 / वही मुद्दा चल रहा है: $ npm start

डंप: त्रुटि: EACCES: अनुमति से वंचित, खुली '/home/simon/xxx/pagebuilder/resources/scripts/registration/node_modules/.cache/@babel/register/.bb.7.7.4.0.development.json' ऑब्जेक्ट पर। fs.openSync (fs.js: 646: 18) Object.fs.writeFileSync (fs.js: 1299: 33) पर सेव (/ home / simon / xxx / पेजबिल्डर / संसाधन) / 'पंजीकरण / नोड_मॉडल / @ babel / रजिस्टर / lib / cache.js: 52: 15) _combinedTickCallback (आंतरिक / प्रक्रिया / अगली_tick.js: 132: 7) प्रक्रिया में ।_tickCallback (आंतरिक / प्रक्रिया / next_ick.js: 181: 9) समारोह में। M.uleule.runMain (मॉड्यूल.जेएस: 696: 11) ऑब्जेक्ट पर। (/home/simon/xxxx/pagebuilder/resources/scripts/registration/node_modules/@babel/node/lib/_babel-node.js:234:23 मॉड्यूल पर। मॉड्यूल (mod.js: 653: 30) ऑब्जेक्ट पर। मॉड्यूल। लोड (मॉड्यूल। जेएस: 664: 10) मॉड्यूल पर लोड (मॉड्यूल। जेएस: 566: 32)

ऐसा लगता है कि मेरे डिफ़ॉल्ट उपयोगकर्ता (व्यवस्थापक) के पास नोड-मॉड्यूल निर्देशिका पर अधिकार नहीं थे।

यह मेरे लिए तय हो गया!

$ sudo chmod a+w node_modules -R ## from project root


2

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

mkdir ~/.npm-global

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

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

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

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

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

source ~/.profile

सुडो का उपयोग किए बिना विश्व स्तर पर पैकेज स्थापित करना, आशा है कि यह मदद करता है


1

यहाँ जीएनयू / लिनक्स (डेबियन) उपयोगकर्ताओं के लिए समाधान है ( USERNAME को अपने उपयोगकर्ता नाम से बदलें ):

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

0

डिस्टर्ब फोल्डर निकालें और यह मेरी समस्या का समाधान करता है !!


0

विंडोज पर यह समाप्त हो रहा है कि पोर्ट पहले से ही IIS द्वारा उपयोग में था।

IIS (राइट-क्लिक, बाहर निकलें) रोककर समस्या का समाधान किया गया।


0

बस node_modulesअपने उपयोगकर्ता होने के लिए वैश्विक निर्देशिका का स्वामी बदलें :

sudo chown -R $USER:$GROUP /usr/local/lib/node_modules

0

मैंने इनमें से अधिकांश सुझावों की कोशिश की लेकिन उनमें से किसी ने भी काम नहीं किया। फिर मैं भागा npm clean-installऔर इसने मेरे मुद्दों को हल किया।


-3

इन आदेशों को निष्पादित करें और समस्या हल हो जाएगी!

sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules

के लिए /usr/localऔर सभी उपखंडों में अनुमतियाँ rwxr-xr-xरूट के अनुसार होनी चाहिए । सिस्टम के उपयोगकर्ता इस dir संरचना के भीतर पढ़ और निष्पादित कर सकते हैं, लेकिन फ़ाइलों को संपादित नहीं कर सकते हैं। यह कहा जा रहा है, आपका जवाब सभी को अनुमति देने का सुझाव देता है। और, यह वर्णन किए बिना कि कैसे और क्या प्रभावित होगा, या क्यों इस मुद्दे को हल किया जाएगा।
कुलिराज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.