2012-11-19 17 views
15

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

sudo npm install flatiron -g 

और मैं मिल -

npm http GET https://registry.npmjs.org/flatiron 
npm http 304 https://registry.npmjs.org/flatiron 
npm ERR! Error: ENOTDIR, mkdir '/home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398' 
npm ERR! If you need help, 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! System Linux 3.2.0-24-generic 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "flatiron" "-g" 
npm ERR! cwd /home/siddharthsaha/denarit 
npm ERR! node -v v0.8.14 
npm ERR! npm -v 1.1.65 
npm ERR! path /home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398 
npm ERR! code ENOTDIR 
npm ERR! errno 27 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/siddharthsaha/denarit/npm-debug.log 
npm ERR! not ok code 0 

यहाँ क्या गलत है? मेरे पास कोई सुराग नहीं है।

उत्तर

19

, स्थापित स्क्रिप्ट शुरू करने से पहले

sudo mkdir -p /home/siddharthsaha/tmp 
sudo npm cache clear 

प्रयास करें क्योंकि npm http 304 https://registry.npmjs.org/flatiron लाइन कहा गया है कि इस मॉड्यूल कैश से आ रहा है। और ENOTDIR बताता है कि कोई निर्देशिका नहीं है। इसलिए, कैश खाली करने से आपकी समस्या हल हो जाएगी।

+0

नहीं, मुझे 304 के अलावा अब भी एक ही त्रुटि मिलती है और अब यह कैश से नहीं आ रहा है। – Siddharth

+0

क्या आप इसे '-g' के साथ स्थापित करने का प्रयास कर सकते हैं, जिसका अर्थ स्थानीय रूप से है। चलो देखते हैं कि यह कैसे होगा। –

+0

अभी भी कोई भाग्य नहीं है। मैंने 'सुडो एनपीएम कैश क्लीन' किया था और फिर 'सुडो एनपीएम फ्लैटिरॉन' स्थापित किया था और मुझे एक ही त्रुटि मिलती है। – Siddharth

21

बस इस मुद्दे को हल किया। इसकी वजह यह है कि घर निर्देशिका में tmp नामक एक फ़ाइल है।

rm -rf ~/tmp 
sudo npm cache clear 
sudo npm install -g node 

भी ... अगर आप NPM स्थापित करने के लिए कोशिश कर रहे हैं तो एक ही त्रुटि और समाधान लागू होता है - हटाना ~/tmp

+2

धन्यवाद, इसने मेरा मुद्दा भी हल किया :-) –

0

नीचे बिना जड़ नोट स्रोत से किसी दिए गए रिहाई स्थापित करने के लिए कदम उठाए जाते हैं - यह स्थापित करता है नोडजेज जो आपको नोड के साथ-साथ एनपीएम, दोनों रिहाई के साथ मिलते हैं।

ताजा निकालने से पहले Node.js शुरू करने के लिए और NPM इन के रूप में भी स्थापित करता है:

sudo mv ~/.npmrc ~/.npmrc_ignore 
sudo mv ~/.npm ~/.npm_ignore 
sudo mv ~/tmp ~/tmp_ignore 
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore 

खुद के रूप में NodeJS और NPM स्थापित करने के लिए नहीं जड़ कर इन आदेशों (OSX/लिनक्स):

export NODE_PARENT=${HOME}/bin_0_10_32 

mkdir ${NODE_PARENT} 

डाउनलोड स्रोत से: http://nodejs.org/download/

cd node-v0.xxxx 

./configure --prefix=${NODE_PARENT}/nodejs 

make -j8 
make install # IMPORTANT this is NOT using sudo 
       # not wanted since installing into $USER owned $NODE_PARENT 

जो यह निर्देशिका में रखता है ऊपर से परिभाषित किया गया उपसर्ग

export PATH=${NODE_PARENT}/nodejs/bin:$PATH 

वातावरण चर NODE_PATH को परिभाषित तो नोड अन्यथा NPM स्थापित xxx वर्तमान dir में नव स्थापित मॉड्यूल डाल देंगे मॉड्यूल के लिए dir पा सकते हैं:

export NODE_PATH=${NODE_PARENT}/nodejs/lib/node_modules 

आप सिंटैक्स का उपयोग करें जब: NPM जी some_cool_module स्थापित वैश्विक के लिए जी dir $ NODE_PATH में स्थापित करता है और नहीं आपके $ पीडब्ल्यूडी

NodeJS स्थापित देता है आप के रूप में अच्छी NPM:

ls -la ${NODE_PARENT}/nodejs/bin 

बाद मॉड्यूल आप वैश्विक ध्वज जी पूर्ण रूप से अपने ऊपर बिन निर्देशिका में उनके ~ बाइनरी ~ रखा जाएगा का उपयोग कर स्थापित करें ... browserify

की तरह अब आप अपने में तीन निर्यात xxx = yyy आदेशों ऊपर डाल ~/.bashrc या ऐसा कुछ आपका वातावरण सेटअप है

0

मैं सीधे npm-debug.log की फ़ाइल को हटा देता हूं। तो यह मेरे लिए ठीक है।

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