2013-02-20 8 views
5

मैं उदाहरण के लिए एक एनएफएस पर लगे घर फ़ोल्डर है और NPM के माध्यम से वैश्विक संकुल स्थापित करने के लिए कोशिश कर रहा हूँ,:.npm फ़ोल्डर के लिए वैकल्पिक स्थान (एनएफएस पर लगे घर से बचने के लिए)

sudo npm install -g jshint 

यह मैं एक देता है क्योंकि त्रुटि sudo के तहत मैं दूरस्थ सर्वर (NPM के इस बाहर की कोशिश की)

npm ERR! Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock' 
npm ERR! { [Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/home/explunit/.npm/a02a2468-jshint.lock' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

पर कुछ भी नहीं बना सकते मुझे यकीन है कि किसी को 2 मिनट में आकर कहते हैं कि "sudo का उपयोग नहीं करते जाएगा - एक असली डेवलपर समझ जाएगा कि इसके बिना नोड/एनपीएम कैसे सेट अप करें! ", लेकिन ए) यह मुझे कभी स्पष्ट नहीं किया गया है कि यह कैसे काम करने के लिए डिज़ाइन किया गया है, यह देखते हुए कि npm readme सूडो का सुझाव देता है, और बी) इस मामले में मैं वास्तव में अपने विशिष्ट उपयोगकर्ता से बंधे कुछ भी नहीं चाहता (यह एक बिल्ड सर्वर है)

तो मुझे लगता है कि असली सवाल यह है कि एनपीएम को मेरे घर फ़ोल्डर को अनदेखा कैसे करना है और .npm के लिए कुछ अन्य स्थान का उपयोग करें?

+0

आप अपनी होम निर्देशिका में '.npm' को एक गैर-एनएफएस स्थान के प्रतीकात्मक लिंक के साथ प्रतिस्थापित कर सकते हैं जिसे लिखने योग्य बनाया जा सकता है। –

उत्तर

7

कैश के साथ कहां बदलना है, इसे बदलने का प्रयास करें।

npm config set cache /SOMEWHERE/ELSE 

/SOMEWHERE/ELSE कहीं ऐसा होना चाहिए जहां उपयोगकर्ता कमांड चला रहा हो।

+0

धन्यवाद, लेकिन ऐसा लगता है कि यह अभी भी "sudo npm install -g some_package" परिदृश्य में हल नहीं करता है क्योंकि सुडो उपयोगकर्ता के स्थानीय एनपीएम कॉन्फ़िगरेशन पर नहीं देखेगा – explunit

+0

'sudo npm -g कॉन्फ़िगरेशन कैश प्राप्त करता है अभी भी मुझे देता है '~/.npm'। कैश केवल वही है जो आपको फिर से डाउनलोड करने की आवश्यकता है। क्या आपने इसे आजमाया और इससे मदद नहीं मिली? –

+0

हां, ऊपर दिए गए मेरे मूल प्रश्न से एक के बाद आपके आदेश का प्रयास किया और एक ही त्रुटि मिली। हालांकि, ऐसा लगता है कि एक --global है जिसे आपके कमांड के अंत में रखा जा सकता है जो इसे सुडो पर्यावरण सेटिंग्स तक भी लागू कर देगा। Tmp को कहीं और – explunit

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