2012-11-23 14 views
9

विफल रहता है मैं स्थानीय रूप से npm install grunt का उपयोग कर gruntjs इंस्टॉल कर सकता हूं।grunt.js की वैश्विक स्थापना

लेकिन जब मैंने उसे विश्व स्तर पर स्थापित करने के लिए कोशिश कर रहा हूँ npm install grunt -g, मैं एक त्रुटि हो रही है:

npm ERR! Error: EACCES, symlink '../lib/node_modules/grunt/bin/grunt' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! path ../lib/node_modules/grunt/bin/grunt 
npm ERR! code EACCES 
npm ERR! message EACCES, symlink '../lib/node_modules/grunt/bin/grunt' 
npm ERR! errno {} 

npm ERR! Error: EACCES, open 'npm-debug.log' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! path npm-debug.log 
npm ERR! code EACCES 
npm ERR! message EACCES, open 'npm-debug.log' 
npm ERR! errno {} 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/lj/npm-debug.log 
npm not ok 

sudo के साथ मैं त्रुटि भी है:

npm ERR! Error: spawn ENOENT 
npm ERR!  at errnoException (child_process.js:483:11) 
npm ERR!  at ChildProcess.spawn (child_process.js:446:11) 
npm ERR!  at child_process.js:342:9 
npm ERR!  at Object.execFile (child_process.js:252:15) 
npm ERR!  at uidNumber (/usr/lib/nodejs/uid-number/uid-number.js:33:17) 
npm ERR!  at loadUid (/usr/lib/nodejs/npm/lib/npm.js:336:5) 
npm ERR!  at Array.2 (/usr/lib/nodejs/bind-actor.js:15:8) 
npm ERR!  at LOOP (/usr/lib/nodejs/chain.js:15:13) 
npm ERR!  at /usr/lib/nodejs/chain.js:18:7 
npm ERR!  at setUser (/usr/lib/nodejs/npm/lib/npm.js:346:32) 
npm ERR! You may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! syscall spawn 
npm ERR! code ENOENT 
npm ERR! message spawn ENOENT 
npm ERR! errno {} 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/lj/npm-debug.log 
npm not ok 

क्या मैं स्थापित करने के लिए कर सकता है यह?

पीएस यह संभव है कि कुछ फ़ोल्डर्स के लिए अधिकार root:root के लिए आते हैं, मेरे उपयोगकर्ता के लिए नहीं। Cuz हमारे व्यवस्थापक वी एम स्थापित कि जिस तरह से ...

+3

कोशिश के लिए ' एनपीएम कैश क्लीन 'पहले। –

+1

मुझे इसका इस्तेमाल किया गया है। मुझे क्या करना चाहिए? – ValeriiVasin

+0

ऐसा लगता है कि यह नोड स्थापना प्रकार पर निर्भर करता है: स्थानीय या वैश्विक ... – ValeriiVasin

उत्तर

4

node_modules फ़ोल्डर chowning प्रयास करें और उसके बाद फिर स्थापित करने का प्रयास:

sudo chown -R $USER /path/to/node_modules/folder 
+0

यह विधि मेरे लिए काम करती है, जब मुझे बताया गया कि 'सुडो एनपीएम' कमांड – iabw

3

sudo npm install -g grunt कोशिश?

+0

नहीं था धन्यवाद, इससे मेरे मामले में मदद मिली – Andrija

10

मैं भी घुरघुराना और बोवर के साथ इस समस्या लिया है

समाधान मैंने पाया इस लेख NPM config

अपने .npmrc में आप उपसर्ग पथ

prefix = /usr/local 
निर्धारित करने की आवश्यकता है

या आप इस तरह टर्मिनल से यह कर सकते हैं:

npm config set prefix "/usr/local" 

इस तरह से नोड जहां उन्हें स्थापित करने के लिए पता चल जाएगा:

NPM 1.0 में, वहाँ बातें स्थापित करने के लिए दो तरीके हैं:

विश्व स्तर पर - यह {उपसर्ग}/lib/node_modules में मॉड्यूल चला जाता है, और निष्पादन योग्य फ़ाइलों डालता है {prefix}/bin में, जहां {prefix} आमतौर पर कुछ/usr/local जैसा होता है। यह {prefix}/share/man में मैन्युअल पृष्ठों को भी इंस्टॉल करता है, अगर उन्हें आपूर्ति की जाती है।

स्थानीय रूप से - यह आपके कार्य को वर्तमान कार्य निर्देशिका में स्थापित करता है। नोड मॉड्यूल ./node_modules में जाते हैं, निष्पादन योग्य ./node_modules/.bin/ में जाते हैं, और मैन पेज बिल्कुल इंस्टॉल नहीं होते हैं।

4

एक ही समस्या उत्पन्न हुई। मेरे लिए निम्नलिखित काम करता है:

sudo npm install -g grunt-cli 
3

विकल्प जोड़ा जा रहा है --no-बिन-लिंक अच्छा काम करता है। मैंने सब कुछ करने की कोशिश की और केवल मेरी समस्या हल हो गई। मैं Ubuntu 12.04 पर Yeoman स्थापित करने गया था और यह हमेशा त्रुटि लौट रहा था: तब

npm ERR! Error: EACCES, symlink '../lib/node_modules/yo/cli.js' 

, मैंने किया था:

npm install -g --no-bin-links yo 

= डी

अधिक जानकारी के https://github.com/isaacs/npm/issues/2380