npm स्थापित -g कम काम नहीं करता है: संसाधन: अनुमति से इनकार किया


202

मैं phpstorm पर कम सेट करने का प्रयास कर रहा हूं ताकि मैं .css को सहेजने के लिए .css को संकलित कर सकूं। मैंने नोड.js और अगला चरण (इस https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html के अनुसार ) इस कमांड को चलाया है टर्मिनल

npm install -g less

हालाँकि जब मैं ऐसा करता हूं तो मुझे ये त्रुटियां मिलती हैं

  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ less@2.5.3
  ├─┬ errno@0.1.4
   └── prr@0.0.0
  ├── image-size@0.3.5
  ├── mime@1.3.4
  ├─┬ promise@6.1.0
   └── asap@1.0.0
  └─┬ source-map@0.4.4
    └── amdefine@1.0.0

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
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!     /Users/brentscholl/npm-debug.log

मैं यहां पूरी तरह से नॉब हूं और आगे क्या करना है यह सुनिश्चित नहीं है। किसी भी मदद को बहुत सराहा जाएगा!

जवाबों:


353

सुडो का उपयोग करने की अनुशंसा नहीं की जाती है। यह आपको बाद में अनुमति जारी कर सकता है। उपरोक्त कार्यों के दौरान, मैं उपयोगकर्ताओं के लिए मूल होने के लिए मूल के स्वामित्व वाले फ़ोल्डरों को बदलने का प्रशंसक नहीं हूं, हालांकि यह केवल कई उपयोगकर्ताओं के लिए एक समस्या हो सकती है। उस के आसपास काम करने के लिए, आप 'npm उपयोगकर्ताओं' के साथ एक समूह का उपयोग कर सकते हैं, लेकिन यह भी अधिक प्रशासनिक ओवरहेड है। दस्तावेज़ से अनुमतियों से निपटने के विकल्पों के लिए यहाँ देखें: https://docs.npmjs.com/getting-started/fixing-npm-permissions

मैं विकल्प 2 के लिए जाऊंगा:

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

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

 mkdir ~/.npm-global

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

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

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

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

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

 source ~/.profile

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

npm install -g jshint

यदि अभी भी अनुमति त्रुटि चलाते हैं (मैक ओएस):

sudo chown -R $USER ~/.npm-global   

यह डिफ़ॉल्ट ubuntu इंस्टॉल के साथ काम करता है:

sudo apt-get install nodejs npm

मेरी सलाह है nvmकि यदि आप संस्करणों को प्रबंधित करने में अधिक लचीलापन चाहते हैं: https://github.com/creationix/nvm

sudoयदि आप हाल ही के npmसंस्करण में हैं , तो MacOS ब्रू का उपयोग करें, यह बिना बॉक्स के बाहर काम करना चाहिए । का आनंद लें :)


उबंटू के प्रमुखों-- उबंटू 18.04 को मुझे लॉग आउट करना पड़ा और बदलाव से पहले ही सभी नई टर्मिनल विंडो को स्वचालित रूप से लागू कर दिया गया।
अलेक्जेंडर ने

अलेक्जेंडर, क्या आपने सुनिश्चित किया कि आपने स्रोत कमांड का उपयोग किया है? यह सही पर्यावरण चर स्थापित करने का ध्यान रखना चाहिए, लॉग आउट करने की आवश्यकता नहीं होनी चाहिए (लेकिन काम करता है)।
विंसेंट गेरिस

यह काम नहीं किया $ npm स्थापित -g jshint npm ERR! npm ईआरआर के बाद लिखिए! इस रन का पूरा लॉग इन पाया जा सकता है: npm ERR! /home/xx/.npm/_logs/2019-02-22T06_35_08_821Z-debug.log
Amjith

3
इसके लिए थैंक्स "ऑन
मैकोस यू

110

इन आदेशों को एक टर्मिनल विंडो में चलाएं (ध्यान दें: $ USER भाग को प्रतिस्थापित न करें ... आपके उपयोगकर्ता को प्राप्त करने के लिए एक लिनक्स कमांड है:

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules

7
क्या खुद को चीजों का मालिक बनाना अच्छा है /usr? क्या होगा अगर कोई और नोड सामान स्थापित करना चाहता है?
मार्क

6
मैकओएस हाई सिएरा पर मेरे लिए काम किया, मुझे केवल तीन कमांडों में से एक की आवश्यकता थी sudo chown -R $USER /usr/local/lib/node_modules:। @ मार्क यह सच है, लेकिन यदि आपके पास केवल एक उपयोगकर्ता है, तो यह निश्चित रूप से कोई समस्या नहीं है।
फेबियन वॉन एलर्ट्स

@FabianvonEllerts खैर, यह सिस्टम फ़ाइलों को गलती से हटाने के लिए अभी भी आसान है, क्योंकि अब आपको sudo की आवश्यकता नहीं होगी ... मैं अकेले होने पर भी सर्वोत्तम प्रथाओं का पालन करूंगा, लेकिन यह निश्चित रूप से आपके ऊपर है।
मार्क

मैं मार्क के साथ हूं, जब तक कि आपके पास एक उपयोगकर्ता नहीं है (और तब भी) आप एक उपयोगकर्ता के स्वामित्व वाले / usr उप निर्देशिकाओं को नहीं चाहते हैं, उस स्थिति में, समूह का बेहतर उपयोग करें। लेकिन शायद इससे भी बेहतर, बस काढ़ा का उपयोग करें जैसा कि मैंने अपने जवाब में उल्लेख किया है, यह बॉक्स से बाहर जड़ के बिना काम करेगा।
विंसेंट गेरिस

11

अनुमति त्रुटियों से बचने के लिए नोड संस्करण मंगर (जैसा कि npm प्रलेखन में लिखा गया है ) के साथ नोड और npm को पुनर्स्थापित करें :

OSX में:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

या इस लेख का अनुसरण करें:

http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/

विंडोज उपयोगकर्ताओं को एनवीएम-विंडोज स्थापित करना चाहिए । अधिक सहायता के लिए कैसे nvm उल्लेख स्थापित करने के लिए nvm रीडमी

फिर उदाहरण के लिए चुनें:

nvm install 8.0.0
nvm use 8.0

अब आप एक और कोशिश दे सकते हैं:

npm install -g less

1
मैंने इसका उपयोग CodeSandbox पर पैकेज स्थापित करने की अनुमति के मुद्दों को हल करने के लिए किया।
कीथ टेलर

11

मैक ओएस एक्स जवाब

आपके पास node_modules निर्देशिका तक पहुंच नहीं है

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

लिखने की पहुंच के साथ निर्देशिका में अपना उपयोगकर्ता जोड़ें

  1. नोड_मॉडल युक्त फ़ोल्डर खोलें

    खुला / usr / स्थानीय / देय /

  2. अनुमति संवाद खोलने के लिए नोड_मॉडल फ़ोल्डर पर एक cmd + I करें
  3. साझाकरण और अनुमतियां अनुभाग में पहुंच को पढ़ने और लिखने के लिए अपने उपयोगकर्ता को जोड़ें यहां छवि विवरण दर्ज करें

MacOS के लिए सबसे आसान और सबसे कुशल समाधान है
इसकी रज्जाद

8

यहां छवि विवरण दर्ज करें$ रूट पर स्विच करने के लिए sudo -i का उपयोग करें, फिर npm इंस्टॉल -g xxxx निष्पादित करें


7

मेरे मैक पर्यावरण के लिए

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

मुद्दे को हल करें


मेरा मानना ​​है कि यह पहले से ही @ VagnerRodrigues के उत्तर में शामिल है।
entpnerd

हां यह है, मैंने सिर्फ मैक पर्यावरण के लिए उल्लेख किया है
असदुत ज़मान

3

बस नीचे मारो आदेश:

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

चलो इसे तोड़ दो:

sudo

इसका मतलब है कि हम इस कमांड को रूट, सिस्टम सुपर यूजर के रूप में चला रहे हैं। ऐसा इसलिए है क्योंकि हमें उस फ़ोल्डर में लिखने की अनुमति नहीं है, लेकिन रूट किसी भी अनुमति को ठीक करने में सक्षम होगा। इस कमांड का मतलब यह भी है कि सिस्टम आपके पासवर्ड की पुष्टि करने के लिए कहेगा।

chown

वह कमांड है जिसका उपयोग हम किसी फ़ाइल या फ़ोल्डर के मालिक को बदलने के लिए करते हैं। हम मालिक को पुनरावर्ती रूप से बदलने के लिए -R विकल्प सेट करते हैं, इसलिए हमें पहले से ही वहां मौजूद सभी फाइलों तक मालिक की पहुंच भी मिल जाती है।

$ उपयोगकर्ता

एक पर्यावरण चर स्वचालित रूप से आपके उपयोगकर्ता नाम पर सेट है।

और अंतिम टुकड़ा फ़ोल्डर पथ है।

इस पथ को चलाने से फ़ोल्डर आपका हो जाएगा, जिससे आप अपने npm इंस्टॉल -g कमांड को सुरक्षित रूप से चला सकते हैं!


0

मैंने सभी सुझाए गए समाधानों की कोशिश की है, लेकिन कुछ भी काम नहीं किया।

मैं macOS Catalina 10.15.3 का उपयोग कर रहा हूं

/ Usr / स्थानीय / पर जाएं

बिन फ़ोल्डर> जानकारी प्राप्त करें का चयन करें

अपने उपयोगकर्ता को साझाकरण और अनुमतियों में जोड़ें। अनुमतियाँ पढ़ें और लिखें। यहां छवि विवरण दर्ज करें

और टर्मिनल पर जाएं और npm install -g @ ionic / cli चलाएं

उससे मुझे सहायता मिली है।


-1

लिनक्स में सुनिश्चित करें कि सभी प्राधिकरण प्राप्त कर रहे हैं:

sudo su

-2

एक अन्य विकल्प एक इंस्टॉलर का उपयोग करके एक नया संस्करण डाउनलोड और स्थापित करना है।

https://nodejs.org/en/download/


-3

नमस्ते, मैं उबंटू 18 का उपयोग कर रहा हूं और प्रिस्मा को स्थापित करते समय मुझे भी यह त्रुटि संदेश मिला था, फिर मैं बस sudoसामने जोड़ता हूं

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