node.js - उबंटू में नोड पैकेज मैनेजर का उपयोग करके पैकेज इंस्टॉल नहीं कर सकते हैं




ubuntu npm (12)

  1. पहले उपयोग कर nvm स्थापित करें:

    curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash
    
  2. चलाने के आदेश

    source ~/.profile
    
  3. अब इसे चलाएं और यह दिखाएगा कि सभी इंस्टॉल या पैकेज के अन्य संस्करण होंगे:

    nvm ls-remote
    
  4. स्थापित पैकेज हरे रंग में होंगे। जो भी संस्करण आप चाहते हैं उसे इंस्टॉल करें:

    nvm install 6.0.0
    
  5. जांचें कि इंस्टॉल नहीं किया गया है:

    which node
    
  6. वर्तमान संस्करण की जांच करें:

    node -v
    
    n=$(which node);
    n=${n%/bin/node}; 
    chmod -R 755 $n/bin/*; 
    sudo cp -r $n/{bin,lib,share} /usr/local
    

उबंटू पर नोडजेएस दुभाषिया नाम ( node ) का नाम दूसरे पैकेज के साथ नाम संघर्ष के कारण बदलकर nodejs कर दिया गया है। यहां readme.debian क्या कहता है:

Node.js दुभाषिया कमांड के लिए अपस्ट्रीम नाम "नोड" है। डेबियन में दुभाषिया कमांड को "नोडजेस" में बदल दिया गया है।

यह नामस्थान टकराव को रोकने के लिए किया गया था: अन्य आदेश उसी नाम का उपयोग अपने अपस्ट्रीम में करते हैं, जैसे कि "नोड" पैकेज से ax25-node।

एक शेल कमांड के रूप में Node.js को कॉल करने वाली स्क्रिप्ट को "nodejs" कमांड का उपयोग करने के बजाय बदला जाना चाहिए।

हालांकि, nodejs का उपयोग करके npm का उपयोग कर संकुल अधिष्ठापन कर सकते हैं। पैकेज स्थापना निम्न त्रुटि के साथ विफल रहता है:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian

मैं एनपीएम कैसे समझ सकता हूं कि सिस्टम पर नोडज पहले ही स्थापित है लेकिन दुभाषिया का नाम अलग है?


आप /usr/bin में एक लिंक ln -s nodejs नोड बना सकते हैं उम्मीद है कि यह आपकी समस्या हल करता है।


आपका सिस्टम पथ नोड जेएस बाइनरी का पता लगाने में सक्षम नहीं है।

1. जो नोड

2. फिर नरम लिंक नोड nodejs करने के लिए

ln -s [the path of nodejs] /usr/bin/node 

मुझे लगता है कि / usr / bin आपके निष्पादन पथ में है। फिर आप अपनी कमांड लाइन में नोड या एनपीएम टाइप करके परीक्षण कर सकते हैं, और सबकुछ अब काम करना चाहिए।


आपके पास जो भी नोड संस्करण है, उसे अनइंस्टॉल करें

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

एनवीएम (नोड संस्करण प्रबंधक) स्थापित github.com/creationix/nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

अब आप जो भी संस्करण चाहते हैं उसे स्थापित कर सकते हैं और संस्करणों के बीच स्विच कर सकते हैं।


टी एल; डॉ:

sudo apt-get install nodejs-legacy

सबसे पहले मुझे स्थिति को थोड़ा सा स्पष्ट करने दें। गर्मियों में 2012 डेबियन रखरखावकर्ता ने किसी अन्य पैकेज के साथ किसी प्रकार के नेमस्पेस टक्कर को रोकने के लिए निष्पादन योग्य नोड.जेएस का नाम बदलने का फैसला किया। डेबियन तकनीकी समिति के लिए यह बहुत कठिन निर्णय था, क्योंकि यह पिछड़ा संगतता तोड़ता है।

निम्नलिखित डेबियन मेलिंग सूची में प्रकाशित समिति रिज़ॉल्यूशन ड्राफ्ट से उद्धरण है:

  1. Nodejs पैकेज को / usr / bin / nodejs प्रदान करने के लिए बदला जाएगा, नहीं / usr / bin / node। पैकेज को ब्रेक घोषित करना चाहिए: डेबियन में किसी भी पैकेज के साथ संबंध जो संदर्भ / usr / bin / node है।

  2. नोडजेस स्रोत पैकेज प्राथमिकता पर एक नोडजेस-विरासत बाइनरी पैकेज भी प्रदान करेगा: अतिरिक्त जिसमें / usr / bin / node / syrink के रूप में / usr / bin / nodejs के रूप में होता है। संग्रह में कोई पैकेज नोडजेस-विरासत पैकेज पर निर्भर या अनुशंसा नहीं कर सकता है, जो पूरी तरह से अपस्ट्रीम के लिए प्रदान किया जाता है
    संगतता। इस पैकेज की घोषणा भी एक संघर्ष घोषित करेगी: नोड पैकेज के साथ संबंध।

<...>

अनुच्छेद 2 ओपी के मुद्दे के लिए वास्तविक समाधान है। ओपी को हाथ से सिम्लिंक करने की बजाय इस पैकेज को स्थापित करने का प्रयास करना चाहिए। डेबियन पैकेज इंडेक्स website में इस पैकेज का लिंक यहां दिया गया है।

यह sudo apt-get install nodejs-legacy किया जा सकता है।

मुझे एनपीएम डेवलपर्स द्वारा पूरी चीज को अपनाने के बारे में कोई जानकारी नहीं मिली है, लेकिन मुझे लगता है कि npm पैकेज कुछ बिंदु पर तय किया जाएगा और nodejs-legacy वास्तव में विरासत बन जाएगी।


नोड को नोडज से जोड़ने का प्रयास करें। सबसे पहले पता लगाएं कि नोडजेस कहां है

whereis nodejs

फिर नरम लिंक नोड nodejs करने के लिए

ln -s [the path of nodejs] /usr/bin/node 

मुझे लगता है कि / usr / bin आपके निष्पादन पथ में है। फिर आप अपनी कमांड लाइन में नोड या एनपीएम टाइप करके परीक्षण कर सकते हैं, और सबकुछ अब काम करना चाहिए।


मेरे लिए समस्या हल हो गई थी,

sudo apt-get remove node
sudo apt-get remove nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
alias node=nodejs
rm -r /usr/local/lib/python2.7/dist-packages/localstack/node_modules
npm install -g [email protected] || sudo npm install -g [email protected]

मैंने इसे अनलिंकिंग / usr / sbin / node (जो ax25-node पैकेज से जुड़ा हुआ है) को ठीक किया है, फिर मैंने कमांड लाइन पर इसका उपयोग करके नोडजेज़ का एक लिंक बनाया है

sudo ln -s /usr/bin/nodejs /usr/bin/node

क्योंकि कर्मा जैसे पैकेज नोडजेस नाम के साथ काम नहीं करते हैं, हालांकि नोड से नोडजेस तक कर्म लिपि की पहली पंक्ति बदलते हैं, लेकिन मैं इस मुद्दे को एक बार और सभी के लिए हल करना पसंद करता हूं


यहां एक और दृष्टिकोण है जिसका उपयोग मैं नोड संस्करणों के बीच आसान स्विचिंग के लिए n पसंद करता हूं।

एक नई उबंटू प्रणाली पर, पहले 'सिस्टम' नोड स्थापित करें:

curl -sL https://deb.nodesource.com/setup | sudo bash -

फिर विश्व स्तर पर एन मॉड्यूल स्थापित करें:

npm install -g n

चूंकि सिस्टम नोड पहले (ऊपर) स्थापित किया गया था, इसलिए विकल्प प्रणाली का उपयोग एन द्वारा प्रदान किए गए नोड को स्पष्ट रूप से इंगित करने के लिए किया जा सकता है। सबसे पहले सुनिश्चित करें कि विकल्प सिस्टम में नोड के लिए कुछ भी नहीं है:

update-alternatives --remove-all node

फिर एन द्वारा प्रदान नोड जोड़ें:

update-alternatives --install /usr/bin/node node /usr/local/bin/node 1

अगला सिस्टम द्वारा प्रदान किया गया नोड जोड़ें (वह कर्ल के साथ स्थापित किया गया था):

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 2

अब इंटरैक्टिव मेनू का उपयोग करके एन द्वारा प्रदत्त नोड का चयन करें (निम्न आदेश द्वारा प्रस्तुत मेनू से चुनें /usr/local/bin/node ):

update-alternatives --config node

अंत में, चूंकि /usr/local/bin आमतौर पर /usr/bin से PATH में उच्च प्राथमिकता है, तो निम्न उपनामों को बनाया जाना चाहिए (अपने .bashrc या .zshrc में दर्ज करें) यदि विकल्प सिस्टम नोड प्रभावी होना है; अन्यथा n / usr / local / bin में एन के साथ स्थापित नोड हमेशा प्राथमिकता लेता है:

alias node='/usr/bin/node'

अब आप n <desired node version number> साथ आसानी से नोड संस्करणों के बीच स्विच कर सकते हैं।


लिनक्स मिंट 17 पर, मैंने सफलता के बिना दोनों समाधान (एक nodejs-legacy या nodejs-legacy पैकेज का उपयोग करना) की कोशिश की।

अंततः मेरे लिए काम करने वाली एकमात्र चीज क्रिस ली से पीपीए का उपयोग कर रही थी:

sudo apt-get purge node-*
sudo apt-get autoremove 
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

यह स्थापित नोड संस्करण 10.37 और एनपीएम 1.4.28 स्थापित किया गया। उसके बाद, मैं वैश्विक स्तर पर पैकेज स्थापित कर सकता था।


here से सरल समाधान

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash --
sudo apt-get install nodejs

आप setup_x.x मान को बदलकर संस्करण निर्दिष्ट कर सकते हैं, उदाहरण के लिए setup_5.x पर


sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

sudo apt-get install nodejs-legacy
source ~/.profile

उस टिप्पणी से source ~/.profile साथ स्वीकृत उत्तर को जोड़ दिया गया है और कुछ पहले आदेशों को साफ़ कर दिया गया है। सबसे अधिक संभावना है कि आपको बाद में sudo apt-get install npm करने की आवश्यकता होगी।





npm