2012-09-01 19 views
46

वर्तमान में मेरे पास node.js संस्करण 0.8.8 है, और npm 1.1.59 स्थापित है।एनपीएम एक्सप्रेस स्थापित नहीं करेगा?

जब भी मैं चलाएँ:

$ npm install -g express 

मैं बदले में यह मिलता है:

npm ERR! Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock' 
npm ERR! { [Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/Users/devinandrews/.npm/64a534c1-express.lock' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 12.1.0 
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express" 
npm ERR! cwd /Users/devinandrews 
npm ERR! node -v v0.8.8 
npm ERR! npm -v 1.1.59 
npm ERR! path /Users/devinandrews/.npm/64a534c1-express.lock 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock' 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /Users/devinandrews/npm-debug.log 
npm ERR! not ok code 0 

मैं अपने बालों को बाहर खींच कर रहा हूँ अभी इस यह पता लगाने की कोशिश कर रहा।

अद्यतन:

मैं

$ npm -g ls 

दौड़ा देखने के लिए मेरी क्या NPM विश्व स्तर पर स्थापित किया है:

/usr/local/lib 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └─┬ [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
    ├── [email protected] 
    ├── [email protected].2 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    └── [email protected] 

लेकिन अगर मैं चलाएँ:

$ npm ls 

यह खाली रिटर्न ?

+0

आप इसे एक व्यवस्थापक के रूप में चल रहे हैं? यह देखने के लिए लॉक फ़ाइल को जांचें कि क्या यह किसी उपयोगकर्ता द्वारा आपके द्वारा चलाए जा रहे किसी भी व्यक्ति से अलग नहीं है - मैं किसी कारण के बारे में नहीं सोच सकता, लेकिन त्रुटियों से संकेत मिलता है कि आपको इसे खोलने की अनुमति नहीं है फ़ाइल, जो आपके उपयोगकर्ता के स्वामित्व में होना चाहिए। – lanzz

+0

मैं अपने उपयोगकर्ताओं/devinandrews निर्देशिका में एक .npm फ़ोल्डर भी नहीं देखता हूं। मैं इसे sudo npm install -g एक्सप्रेस पर जाकर इंस्टॉल कर सकता हूं, लेकिन यह सलाह दी जाती है कि मैं ऐसा नहीं करता हूं। – Devin

+0

क्या आप उस खोल में या। Finder में '.npm' फ़ोल्डर ढूंढ रहे हैं? आपके पास खोजक में छिपे हुए डॉट-नाम हो सकते हैं (क्योंकि यह डिफ़ॉल्ट है); ध्यान दें कि मुझे लगता है कि आप ओएसएक्स पर अपने घर निर्देशिका स्थान द्वारा निर्णय ले रहे हैं। – lanzz

उत्तर

141

इसे फिर से स्थापित करने का प्रयास मैं एक ही समस्या थी, और npm cache clear यह ठीक नहीं हुआ। यह समस्या इसलिए होती है क्योंकि आपकी होम निर्देशिका में .npm निर्देशिका रूट विशेषाधिकारों के साथ बनाई गई थी। सबसे अधिक संभावना है कि आपके द्वारा चलाए गए पहले एनपीएम कमांड sudo npm -g थे और अब आप स्थानीय निर्देशिका में npm install पर प्रयास कर रहे हैं।

हल करने के लिए:

  • sudo chown -R yourusername ~/.npm
  • यह आवश्यक नहीं हो सकता लेकिन मैं यह भी package.json से rmdir ~/tmp

npm install करना पड़ा इस के बाद काम करना चाहिए।

+1

मैं ओएसएक्स चला रहा हूं। चोटी के लिए मेरा उपयोगकर्ता नाम क्या होगा? .npm वर्तमान में मेरे उपयोगकर्ताओं/[मेरा नाम यहां] फ़ोल्डर में स्थापित है। ;; लगभग 2 महीने बाद वापस पाने के लिए भी खेद है, हाहा। – Devin

+0

आह यह इसलिए था क्योंकि डॉट नोटेशन अब उपयोग नहीं किया जाता है। और मैंने $ USER का उपयोग किया क्योंकि मुझे नहीं पता था कि मेरा उपयोगकर्ता नाम क्या होना चाहिए .. किसी भी तरह से, धन्यवाद! – Devin

+0

क्या यह 'sudo npm install -g express' चलाने में समस्या है? –

0

क्या आपने सूडो एनपीएम-जी इंस्टॉल एक्सप्रेस की कोशिश की है?

+0

मेरे पास है, और यह काम करता है, हालांकि मुझे अपने प्रोजेक्ट में इसका उपयोग करने के लिए अपने ऐप्स प्रोजेक्ट फ़ोल्डर में स्थानीय रूप से स्थापित करने की आवश्यकता है। – Devin

6

रन npm cache clean और

+0

अगर मैं ऐसा करता हूं तो मुझे एक और त्रुटि मिलती है। यहां डालने के लिए बहुत बड़ा .. – Devin

+0

नाइस 1 धन्यवाद। इन सभी अन्य विकल्पों में खो रहा था – jarryd

4

मुझे एक ही समस्या मिली, यह समस्या इसलिए हुई क्योंकि आपकी होम निर्देशिका में .npm निर्देशिका रूट विशेषाधिकारों के साथ बनाई गई थी।

उपयोग:

$sudo npm install -g express 
0

समाधान है:

1 - अपने उपयोगकर्ता के लिए chown।NPM फ़ोल्डर:

sudo chown -R Webmaste /Users/webmaste/.npm/ 

2 - अपने परीक्षण फ़ोल्डर या अपने फ़ोल्डर में:

sudo npm install -g [email protected] 

3 - अपने वास्तविक स्थान से एक्सप्रेस आह्वान:

/usr/local/share/npm/bin/express 

4 -

sudo cd . && npm install 

5 - अंत में:

node app 

कंसोल में अंतिम संदेश इस तरह दिखना चाहिए:

Express server listening on port 3000 in development mode 
+0

सबसे पहले, धन्यवाद। दूसरा, अगर इससे कोई फर्क पड़ता है, तो मैं ओएसएक्स में हूं। और चोटी से बहुत परिचित नहीं है। चोटी चलाते समय मुझे उपयोग करना चाहिए उपयोगकर्ता नाम क्या है? – Devin

+0

'सुडो सीडी' बिल्कुल कोई समझ नहीं आता है। सीडी एक अंतर्निर्मित है, भले ही सुडो इसे लॉन्च कर सके, यह उप-खोल में होगा –

0

आप sudo npm install -g package_name उपयोग करने के साथ कुछ भी गलत नहीं नहीं देख सकते हैं। और पासवर्ड टाइप करने में समस्या है, आप हमेशा अपने आप को सऊडर फाइलों में जोड़ सकते हैं या उसी समूह में npm निष्पादन योग्य है।

और इसलिए NPM संपादित /etc/sudoers फ़ाइल की तह तक कुछ इस तरह जोड़ने के लिए sudoers अपने आप को जोड़ने के लिए:

your_username localhost=/usr/local/bin/npm 

Here कैसे प्राप्त करने के लिए पर कदम गाइड द्वारा कदम है कि यदि आप अधिक जानकारी की आवश्यकता।

0

मेरे मामले में, ~/.npm निर्देशिका की बजाय रूट के स्वामित्व में, यह ~/tmp था, जिसे मैंने जांचने के लिए नहीं सोचा था जब तक कि त्रुटि संदेशों में से एक ने अंततः मुझे ढूंढने का नेतृत्व नहीं किया। फिक्सिंग के लिए प्रक्रिया बहुत आसान है, क्योंकि यह एक टीएमपी निर्देशिका है, हम इसे सिर्फ उड़ सकते हैं और आपके स्वामित्व वाले एक के साथ फिर से शुरू कर सकते हैं।

sudo rmdir ~/tmp 
mkdir ~/tmp 
0

मुझे एक ही समस्या का सामना करना पड़ा।

मैंने नोड जेएस डाउनलोड वेबसाइट पर जाकर नोडज पैकेज को अपग्रेड किया और फिर मुझे इस समस्या का सामना नहीं हुआ।

धन्यवाद गुड लक

संबंधित मुद्दे