त्रुटि: EACCES: अनुमति से वंचित, एक्सेस '


298

त्रुटि के कारण क्या हो सकता है Error: EACCES: permission denied, access '/usr/local/lib/node_modules'?

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!  { 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! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

9
इसे हल करने के तरीके पर एनपीएम द्वारा आधिकारिक गाइड देखें: docs.npmjs.com/…
Dzhuneyt

जवाबों:


488

अपनी फ़ाइल अनुमतियाँ बदलें .. इस तरह

पहले जाँच करें कि निर्देशिका का मालिक कौन है

ls -la /usr/local/lib/node_modules

यह पहुंच से इनकार कर रहा है क्योंकि नोड_मॉडल फ़ोल्डर का स्वामित्व रूट के पास है

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

इसलिए इसे अपने उपयोगकर्ता के लिए रूट बदलकर बदलने की आवश्यकता है लेकिन पहले अपने वर्तमान उपयोगकर्ता की जांच करने के लिए नीचे कमांड चलाएं मुझे ओएस एक्स में कमांड लाइन के माध्यम से सक्रिय उपयोगकर्ता का नाम कैसे मिलेगा?

id -un

या

whoami

फिर मालिक को बदल दें

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

या

sudo chown -R ownerName: /usr/local/lib/node_modules

या

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

3
ऐसे मामले थे जब सूडो को कमांड में जोड़ने से भी काम नहीं चला। इसने मेरे लिए काम किया और मुझे इसका जवाब स्वीकार करना चाहिए।
निरोज श्री

1
मेरी कंपनी Microsoft सक्रिय निर्देशिका एकल साइन ऑन का उपयोग करती है। इसलिए समूह का नाम इसमें स्लैश है और इसमें एक स्थान है। जिससे यह करना थोड़ा कठिन हो जाता है। मैं जिस कमांड का इस्तेमाल करता था sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules। मेरे द्वारा किए गए समूह का नाम ठीक से सूचीबद्ध करने के लिए id -gn myuser
पैट्रिक

44
यह मददगार था लेकिन जब मुझे मिली मालिक को बदलने के लिए मैं कमांड चलाता हूं illegal group name। इसलिए मैंने कमांड को बदल दिया sudo chown -R ownerName: /usr/local/lib/node_modulesऔर यह काम कर गया।
मिडोरी

4
हालाँकि यह सही उत्तर है, मैंने कई बार इस मुद्दे का सामना किया है और बेहतर समाधान nvm का उपयोग करना है। इस तरह से आपको फ़ाइलों के स्वामी का उपयोग करने की आवश्यकता नहीं होगी chowngithub.com/nvm-sh/nvm
Roee

1
अनुमति का जाप करने के बजाय, इसकी डॉक्स में एनवीएम के साथ एनपीएम स्थापित करने की सिफारिश की गई है। Stackoverflow.com/a/59575266/2311074
एडम

106

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

अपने कंप्यूटर का बैकअप लो। अपने होम डायरेक्टरी में कमांड लाइन पर, वैश्विक संस्थापनों के लिए एक निर्देशिका बनाएँ:

mkdir ~/.npm-global

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

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

अपने पसंदीदा पाठ संपादक में, खोलें या बनाएं

~/.profile

फ़ाइल और इस लाइन को जोड़ने:

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

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

source ~/.profile

अपने नए कॉन्फ़िगरेशन का परीक्षण करने के लिए, sudo का उपयोग किए बिना विश्व स्तर पर एक पैकेज स्थापित करें


18
मेरी राय में यह सबसे कम विनाशकारी विकल्प है। यह npm वेबसाइट में भी अनुशंसित है
17xande

वैकल्पिक रूप से, यदि आप नहीं करना चाहते हैं npm config set prefix(विशेषकर यदि आप एक गैर-रूट इंस्टॉलर लिख रहे हैं), तो आप PREFIXएनवी संस्करण को ओवरराइड करना या --prefixविकल्प प्रदान करना चाह सकते हैं , जो दोनों के बराबर है npm config set prefix। (निश्चित नहीं है कि कौन सा ओवरराइड करता है)
SOFe

इसने मेरे लिए पूरी तरह से काम किया। मेरी राय में, यह उत्तर विनाशकारी त्रुटियों के लिए कम से कम जगह बनाता है और समझने और लागू करने के लिए बहुत सरल है।
क्लॉकलीप्टिक

1
यह वही है जो देख रहा था! धन्यवाद।
djangodude

यह वास्तव में अनुशंसित समाधान है, और दीर्घकालिक में सबसे अच्छा है।
अल-मोतफर

49

आपको बस इतना करने की आवश्यकता है कि USER को / स्थानीय / परिवाद के स्वामी से जोड़ें

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

7
यदि भविष्य के पाठक अनुमतियों को नहीं समझते हैं, तो कृपया आधिकारिक दस्तावेज एनपीएम प्रलेखन देखें और समस्या को ठीक करें। docs.npmjs.com/… । विशेष रूप से, भविष्य के पाठकों को संभवतः एक नोड संस्करण प्रबंधक (अनुशंसित) के साथ
npm को

1
यह बहुत सीधा है। इसका मतलब यह भी है कि आपको कभी भी किसी चीज के बारे में दोबारा चिंता करने की आवश्यकता नहीं है; आप स्वयं / usr / स्थानीय / देय हैं।
ओबिन्ना नेनान्या

4
यह एक अच्छा उपाय नहीं है। ऊपर चलकर chownआप अपने पूरे फाइल सिस्टम की अनुमति संरचना को नष्ट करने के उच्च जोखिम में हैं।
लार्स

3
इस कमांड ने मेरी सभी अनुमतियों को बर्बाद कर दिया। सभी चीजों को फिर से ठीक करने की आवश्यकता है।
आजम अलवी

4
सटीक होने के लिए, यह एक मालिक को नहीं जोड़ रहा है । यह मालिक को बदल रहा है , जो सिर्फ जोड़ने से कहीं अधिक विनाशकारी है , और लगभग उतना ही विनाशकारी है sudo chmod -R 777 /
SOFe

29

जोड़कर कोशिश sudo से पहले जो कुछ भी आदेश आप कोशिश कर रहे हैं।

इस तरह: sudo npm install

Linux / UNIX में कमांड के साथ sudo का प्रयोग आम तौर पर सुपरसियर स्तरों के लिए आपकी अनुमति को बढ़ाता है। विंडोज में, सुपरसुअर अकाउंट को आमतौर पर 'एडमिनिस्ट्रेटर' कहा जाता है। लिनक्स / यूनिक्स में सुपरसुअर अकाउंट को आमतौर पर 'रूट' नाम दिया गया है।

रूट उपयोगकर्ता के पास आपके कंप्यूटर पर लगभग किसी भी फ़ाइल को एक्सेस करने, संशोधित करने या हटाने की अनुमति है। सामान्य उपयोगकर्ता खाते कई कम फ़ाइलों को एक्सेस, संशोधित या हटा सकते हैं। एक सामान्य खाते पर प्रतिबंध आपके कंप्यूटर को अनधिकृत या हानिकारक कार्यक्रमों या उपयोगकर्ताओं से बचाता है। कुछ प्रक्रियाओं में आपको उन फ़ाइलों या फ़ोल्डरों पर कार्रवाई करने की आवश्यकता होती है, जिनके लिए आपके पास सामान्य रूप से एक्सेस की अनुमति नहीं होती है। एक प्रोग्राम स्थापित करना जो हर कोई एक्सेस कर सकता है, इन कार्यों में से एक है।

आपके मामले में, sudo के साथ इंस्टॉलेशन कमांड चलाने से आपको सुपरयुसर की अनुमति मिल जाती है, और आप उन फ़ाइलों को संशोधित कर सकते हैं, जिन्हें आपके सामान्य उपयोगकर्ता को संशोधित करने की अनुमति नहीं है।


57
npm संकुल स्थापित करते समय sudo के उपयोग से बचें। आप जिस गहराई से ऐसे रास्ते पर जाते हैं, उसके बाद इसे ठीक करना उतना ही कठिन होगा। बस npm फ़ोल्डर के लिए अनुमतियाँ बदलें जैसा कि एक अन्य उत्तर में बताया गया है और बेहतर जीवन जीते हैं।
लुकास लीसिस

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

1
यदि उपयोगकर्ता अनुमतियों को नहीं समझता है तो संकुल की स्थापना से पहले सूडो का उपयोग करते हुए इस उत्तर को हटा दिया जाना चाहिए। कृपया पहले उत्तर का संदर्भ दें जिसमें आप एक बार कोर नोड लोकेशन का स्वामित्व बदलते हैं।
SeaWarrior404

19

मैंने @okanda द्वारा दिए गए उत्तर के समाधान की कोशिश की, लेकिन यह मेरे लिए काम नहीं किया।

हालाँकि यह पूरी तरह से काम करता है जब मैंने इसे कई फ़ोल्डर्स के लिए किया जैसे कि इस धागे में वर्णित है: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493

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

धन्यवाद, इस जवाब ने मेरी मदद की। Ubuntu 18.04.3
bakhti_UZB 12

मेरे पास पहले अन्य समाधान काम थे, लेकिन किसी कारण से इस बार इन सभी को फ़ोल्डर में काम करना पड़ा। धन्यवाद। मैक वी 10.15.2
अमीर 5000

1
क्या उत्पादन सर्वर में चलना सुरक्षित है?
Cheezey

16

उबंटू में वैश्विक पैकेज स्थापित करते समय , आपको usr/binफ़ोल्डर में लिखते समय विशेष लेखन अनुमतियों की आवश्यकता होती है । यह सुरक्षा कारणों से है। इसलिए, हर बार जब आप एक वैश्विक पैकेज स्थापित करते हैं, तो उपयोग करें:

sudo npm install -g [package-name]

आपके विशिष्ट मामले के लिए, यह होगा:

sudo npm install -g typescript

14

ऐसा लगता है कि आप अनुमति के मुद्दों में भाग रहे हैं। यदि आप स्थापित कर रहे हैं npm-packagesतो यह संभव हो सकता है कि EACCESवैश्विक स्तर पर पैकेज स्थापित करने का प्रयास करते समय आपको कोई त्रुटि मिल रही हो । इसका मतलब है कि आपके पास npmवैश्विक पैकेजों और कमांडों को संग्रहीत करने के लिए उपयोग की जाने वाली निर्देशिकाओं को लिखने की अनुमति नहीं है ।

कमांड चलाने का प्रयास करें: sudo chmod u+x -R 775 ~/.npmऔर sudo chown $USER -R ~/.npmया आप बस किसी भी npmकमांड को चला सकते हैं sudo, जिसे आपके मुद्दे को हल करना चाहिए।

यदि आप npm-packageस्थानीय स्तर पर स्थापित कर रहे हैं , तो आपको अपने स्थानीय प्रोजेक्ट निर्देशिका में होना चाहिए और sudo npm install <pkg-name>आवश्यक पैकेज को स्थापित करने के लिए कमांड चलाने का प्रयास कर सकते हैं । उपयोग करने का उद्देश्य sudoयह है कि यह आपकी स्वामी अनुमतियों को बदल देगा ताकि आप अपने वर्तमान उपयोगकर्ता को npmकमांड चलाने के लिए अधिकृत कर सकें ।

मैं आपको https://docs.npmjs.com/getting-started/fixing-npm-peramissions पर नज़र डालने की सलाह दूंगा


10

मैं प्रतिक्रिया एक्सपो को स्थापित करने की कोशिश कर रहा था और सूडो के अलावा मुझे --unsafe-perm को जोड़ना पड़ा

इस तरह। यह मेरी समस्या का समाधान करता है

sudo npm install -g expo-cli --unsafe-perm

@ फुरकान, बहुत-बहुत धन्यवाद ... इसने मेरे लिए अलग-अलग उपाय आजमाने के बाद काम किया।
azeTech

@ एज़टेक, मुझे खुशी है कि इसने मदद की: डी
फुरकान

9

यदि आप मैक पर इस मुद्दे का सामना कर रहे हैं। इन कदमों का अनुसरण करें

नीचे दिए गए कमांड का उपयोग करके पहले जाँच करें कि इस फ़ाइल का स्वामी कौन है

ls -la /usr/local/lib/node_modules

आपको कुछ फ़ाइल मिलेंगी जैसे उनमें से एक नीचे है

drwxr-xr-x   3 root    wheel  768 May 29 02:21 node_modules

क्या आपने देखा है कि उपरोक्त फ़ाइल रूट द्वारा स्वयं की है, इसके लिए आपके अंदर परिवर्तन करने की आवश्यकता है ताकि आपको पथ के स्वामी जहाज को बदलना पड़े।

आप इस आदेश द्वारा वर्तमान उपयोगकर्ता कौन है यह जांच सकते हैं

id -un (in my case user is yamsol)

और फिर आप इस आदेश को कॉल करके बदल सकते हैं (बस अपने उपयोगकर्ता नाम को स्वामी के साथ बदलें)

sudo chown -R ownerName: /usr/local/lib/node_modules

मेरे मामले में जैसा कि आप जानते हैं कि उपयोगकर्ता "yamsol" है, मैं इस तरह से इस कमांड को कॉल करूंगा

sudo chown -R yamsol: /usr/local/lib/node_modules

बस।


8

उन सभी प्रतिक्रियाओं से सावधान रहें जो सभी निर्देशिकाओं के स्वामी को / usr / स्थानीय रूप से बदलते हैं , लिनक्स सिस्टम को गड़बड़ नहीं करते हैं !!!

मुझे लगता है कि सभी वैश्विक पैकेजों का पता लगाने के लिए अपने स्वयं के फ़ोल्डर का उपयोग करने का सबसे अच्छा तरीका है: https://www.competa.com/blog/how-to-run-npm-without-sudo/


8

आप Npm संस्करण प्रबंधक या एक नोड इंस्टॉलर के माध्यम से npm स्थापित कर सकते हैं। में डॉक्स यह कहा:

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

चूँकि आपके पास अनुमति की त्रुटि है , आप शायद Npm को एक नोड इंस्टॉलर के माध्यम से स्थापित करते हैं और अब आपको इसे nvm (नोड संस्करण प्रबंधक) के साथ पुनः इंस्टॉल करने की आवश्यकता है।

सौभाग्य से, यह बहुत सरल है। आपको अपने वर्तमान संस्करण npm या Node.js. को निकालने की भी आवश्यकता नहीं है

आपको बस इतना करना है

  1. एनवीएम स्थापित करें। OSX या लिनक्स नोड उपयोग के लिए:

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

    यह आपके घर निर्देशिका में एक nvm फ़ोल्डर बनाता है।

फिर

  1. एनवीएम के माध्यम से एनपीएम और नोड.जेएस स्थापित करें। ऐसा करने के लिए, बस कॉल करें

    nvm install stable

अब आप का उपयोग किए बिना विश्व स्तर पर अपने पैकेज स्थापित कर सकते हैं sudoया के मालिक को बदलने node_modulesमें usrफ़ोल्डर।


उत्तर के लिए धन्यवाद एडम! बस सोच रहा था कि निर्माण / पर्यावरण सेट-अप प्रक्रिया में बाद में कुछ संभावित जटिलताएं क्या हो सकती हैं?
He 说 - 吖 आर्ची विल

यह भी विस्तृत रूप से लोगों के लिए fish, ठीक से काम करने के लिए nvm को एक मछली-आवरण github.com/FabioAntunes/fish-nvm
吖 说 说 - y Will Archy की आवश्यकता होगी, वह

@ @ 吖 CH ARCHYSHU never nvm के साथ नोड इंस्टॉल करते समय मैंने कभी किसी जटिलता के बारे में नहीं सुना। और चूंकि यह आधिकारिक डॉक्स से अनुशंसित है, यह मुझे जाने का सबसे अच्छा तरीका लगता है :)
एडम

7

Sudo उपयोगकर्ता के रूप में स्थापित करने के लिए इस कमांड का उपयोग npm करें:

sudo npm install -g create-react-app 

के बजाय npm स्थापित -g बनाने-प्रतिक्रिया-एक पीपी।


@ Lukas- का उपयोग करते हुए npm संकुल स्थापित करते समय sudo का उपयोग करें। आप जिस गहराई से ऐसे रास्ते पर जाते हैं, उसके बाद इसे ठीक करना उतना ही कठिन होगा। बस npm फ़ोल्डर के लिए अनुमतियाँ बदलें जैसा कि एक अन्य उत्तर में बताया गया है और बेहतर जीवन जीते हैं।
सत्यमेव जयते

6

मैं मैक में निम्नलिखित का उपयोग करके समस्या को ठीक करने में सक्षम था।

sudo npm install -g @aws-amplify/cli --unsafe-perm=true

6

एनवीएम उपयोगकर्ताओं के लिए

sudo chown -R $USER /home/bereket/.nvm/versions/node/v8.9.1/lib/node_modules 

तथा

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

की जगह v8.9.1अपने नोड संस्करण प्रयोग कर रहे हैं।


यह मेरे लिए काम नहीं करता है! अभी भी त्रुटि हो रही है: npm ERR! त्रुटि: EACCES: अनुमति से वंचित, नाम /home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules/.staging/npm-90fab7b7/node_modules/columnify/node_modules/wcwidth/node_mode_mode/ /.staging ..that फ़ोल्डर के साथ कुछ स्थापना के प्रयास के बाद मौजूद नहीं है। क्या उसके लिए आपके द्वारा मेरी मदद की जाएगी?
शमूएल

@ शमूएल ने इस आदेश को चलाया? sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
बेरेकेट गेब्रेडिंगल

5

ऐसा लगता है कि आपने स्थानीय रूप से बजाय विश्व स्तर पर एक npm पैकेज स्थापित करने की कोशिश की, जैसा कि man npm installवर्णित है:

जी या --global तर्क विश्व स्तर पर करने के बजाय स्थानीय स्तर पर पैकेज स्थापित करने के लिए NPM का कारण होगा।

आम तौर पर, जब आप एक npm प्रोजेक्ट स्थापित कर रहे होते हैं (कई अन्य जो आपके पास हो सकते हैं), तो यह आपके डिबग लॉग के रूप में Node.js वैश्विक मॉड्यूल (/ usr / local / lib / node_modules) पर पैकेज स्थापित करने के लिए एक अच्छा विचार नहीं है। सुझाव दिया।

उपयोग करने के बजाय -g, उपयोग करें --save, जो स्वचालित रूप से आपकी package.jsonफ़ाइल के लिए निर्भरता के रूप में पैकेज को बचाएगा :

ऐशे ही:

$ npm install express-generator --save

$ cat package.json 
{
  "name": "first_app_generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
  "author": "ivanleoncz",
  "license": "MIT",
  "dependencies": {
    "express-generator": "^4.16.0"
  }
}

लेकिन जब आप उपयोग करने जा रहे हैं, तो अन्य उत्तरों के अनुसार -g, आपको प्रदर्शन करते समय उपयोग करना होगा sudo( यदि आपके उपयोगकर्ता के पास sudo विशेषाधिकार है: देखें / आदि / sudoers ) npm install express-generator -g, लेकिन वास्तव में, यह एक अच्छा विचार नहीं है, संभवतः अनुमति की समस्या पैदा कर सकता है।

नोटिस

सिस्टम पथ पर स्क्रिप्ट उपलब्ध करने के लिए, विकल्प के express-generatorसाथ स्थापित करने के लिए निर्देश हैं , लेकिन आप स्थानीय रूप से स्थापित स्क्रिप्ट का उपयोग कर सकते हैं, अगर आपके npm प्रोजेक्ट पर स्थित है :-gexpress-cli.jsnode_modules

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

यदि कोई संदेश जैसे / usr / bin / env: 'नोड': ऐसी कोई फ़ाइल या निर्देशिका दिखाई नहीं देती है, तो इंस्टॉल करें nodejs-legacy(Debian / Ubuntu)

IMHO, का उपयोग करना -g(भी उपयोग करना sudo) hic sunt dracones की तरह है , यदि आप परिणामों के अनिश्चित हैं।

अधिक जानकारी के लिए:


4

यह npmआपके वैश्विक node_modulesनिर्देशिका को स्थानीय रूप से एक्सेस करने में सक्षम नहीं होने के कारण हुआ , चल रहा है

sudo chown -R Name: /usr/local/lib/node_modules

जैसे

sudo chown -R developerayo: /usr/local/lib/node_modules

समस्या को हल करता है, अब आप फिर से चलाए गए कमांड को चला सकते हैं।


3

बस आप मालिक को बदल सकते हैं या इस तरह की आज्ञा देने से पहले सिर्फ सुडो का उपयोग करें

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules( परिवर्तन स्वामी )

या

sudo npm install -g json-server

बस।


3

अगर कमांड है तो linux / ubuntu के लिए

npm install -g <package_name>

npm WARN deprecated superagent@4.1.0: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.

npm ERR! path ../lib/node_modules/<package_name>/bin/..

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! syscall symlink

npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules
/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>']

npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!      errno: -13,

npm ERR!      code: 'EACCES',

npm ERR!      syscall: 'symlink',

npm ERR!      path: '../lib/node_modules/<package_name>/bin/..',
npm ERR!      dest: '/usr/local/bin/ionic' },

npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, symlink \'../lib/node_modules/ionic/bin/ionic\' -> \'/usr/local/bin/ionic\'',

npm ERR!   errno: -13,

npm ERR!   code: 'EACCES',

npm ERR!   syscall: 'symlink',

npm ERR!   path: '../lib/node_modules/<package-name>/bin/<package-name>',

npm ERR!   dest: '/usr/local/bin/<package-name>' }

npm ERR! 

npm ERR! The operation was rejected by your operating system.

npm ERR! It is likely you do not have the permissions to access this file as the current user

npm ERR! 

npm ERR! If you believe this might be a permissions issue, please double-check the

npm ERR! permissions of the file and its containing directories, or try running

npm ERR! the command again as root/Administrator (though this is not recommended).


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/User/.npm/_logs/2019-07-29T01_20_10_566Z-debug.log

फिक्स: रूट अनुमतियों के साथ स्थापित करें

sudo npm install <package_name> -g


3

रिएक्ट स्थापित करने के लिए आपको सुपरयुसर स्तरों की अनुमति की आवश्यकता होती है। लिनक्स / यूनिक्स में सुपरसुअर अकाउंट को आमतौर पर 'रूट' नाम दिया गया है।

सुपर्यूसर विशेषाधिकार प्राप्त करने के लिए बस अपने टर्मिनल पर निम्न कमांड चलाएँ:

sudo -i

और फिर React को स्थापित करने के लिए बस कमांड चलाएं:

npm install -g create-react-app

हालाँकि, अभिक्रिया टीम हमें एक वैश्विक पैकेज स्थापित करने के बजाय निम्नलिखित कमांड का उपयोग करने के लिए प्रोत्साहित करती है।

npx create-react-app app_name

1
सुडो का उपयोग करना एक जोखिम भरा प्रस्ताव है, कुछ पैकेज सुरक्षित हो सकते हैं, लेकिन अन्य कुछ और करने के लिए सेट कर सकते हैं और उन विशेषाधिकारों का लाभ उठा सकते हैं जो आप दे रहे हैं।
सूडो

कुछ पैकेज जैसे create-react-appरूट पैकेज को वैश्विक पैकेज के रूप में स्थापित करने की आवश्यकता होती है; अन्यथा, आप इसे स्थापित करने में सक्षम नहीं होंगे। हालाँकि, Reajjs टीम हमें npx create-react-app app_nameएक वैश्विक पैकेज स्थापित करने के बजाय निम्नलिखित कमांड का उपयोग करने के लिए प्रोत्साहित करती है ।
फात्मा टी। ज़ुहोरा



2

लंबे शोध के बाद मुझे समझ आया कि कोणीय OS को स्थापित करने के लिए Mac OS के लिए कुछ भी आवश्यक नहीं है बस sudo npm install -g @angular/cliअपने टर्मिनल का उपयोग करें पासवर्ड आपके पासवर्ड को दर्ज करेगा यह cli स्थापित करने के लिए आगे बढ़ेगा। इसने मेरे लिए काम किया।



2

यदि आप लिनक्स चला रहे हैं (यानी: आर्क)

# npm -g install packageName

डिफ़ॉल्ट रूप से यह कमांड / usr / lib / node_modules / npm के तहत पैकेज स्थापित करता है और ऐसा करने के लिए रूट विशेषाधिकारों की आवश्यकता होती है।

उपयोगकर्ता-व्यापी स्थापना की अनुमति देने के लिए

वर्तमान उपयोगकर्ता के लिए वैश्विक पैकेज इंस्टॉलेशन की अनुमति देने के लिए, npm_config_prefixपर्यावरण चर सेट करें । यह npm और यार्न दोनों द्वारा उपयोग किया जाता है।

~/.profile
PATH="$HOME/.node_modules/bin:$PATH"
export npm_config_prefix=~/.node_modules

परिवर्तनों को अद्यतन करने के लिए पुनः लॉगिन या स्रोत।

आप के लिए --prefixपैरामीटर भी निर्दिष्ट कर सकते हैं npm install। हालाँकि, यह अनुशंसित नहीं है, क्योंकि आपको हर बार जब आप एक वैश्विक पैकेज स्थापित करते हैं तो इसे जोड़ना होगा।

$ npm -g install packageName --prefix ~/.node_modules

इसलिए आपको फोल्डर की अनुमति नहीं देनी चाहिए


1

मैं स्थापित करके इस मुद्दे से छुटकारा पा रहा था nvm, फिर नोड को नवीनतम संस्करण में सेट करना।

  1. स्थापित करें nvmका उपयोग कर curl(के लिए करने के लिए नवीनतम संस्करण जाने nvm.sh )
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  1. उपलब्ध नोड संस्करणों की सूची बनाएं
nvm ls

v10.12.0
डिफ़ॉल्ट -> v10.12 (-> v10.12.0)
नोड -> स्थिर (-> v10.12.0) (डिफ़ॉल्ट)
स्थिर -> 10.12 (-> v10.12.0)
...

  1. उपयोग करने के लिए नोड का कौन सा संस्करण चुनें
nvm use v10.12

nvm npm कॉन्फिगर "उपसर्ग" विकल्प के साथ संगत नहीं है: वर्तमान में "" पर सेट है

  1. विकल्प को अनसेट करने के लिए इसे चलाएं:
nvm use --delete-prefix v10.12.0

ऊपर दिए गए आदेशों का पालन करने के बाद, आप उबंटू में प्रतिक्रिया / कोणीय स्थापित करने में सक्षम होंगे।




0

मैंने sudo का उपयोग किया है, लेकिन यह समस्या को हल नहीं करता है, मैंने नोड_मॉडल फ़ोल्डर की अनुमति को बदलकर समस्या को ठीक कर दिया है,

sudo chmod -R 777 node_modules

यदि आप चाहते हैं कि आप 777 को किसी अन्य कोड से बदल सकते हैं यदि आप सभी उपयोगकर्ता / समूह के लिए अनुमति नहीं देते हैं।


0

आप में से जो अभी भी उपर्युक्त समाधानों का उपयोग करने के बाद समस्या को ठीक करने में असमर्थ हैं। इसे इस्तेमाल करे

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

कि चाल, चीयर्स करना चाहिए!

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