नोड पैकेज मैनेजर किसी तरह भ्रष्ट हो गया, अब इसे स्थापित नहीं किया जा सकता है


14

मैं आज एक समस्या में भाग गया जब मैंने npm update -gएक नोडज एप्लिकेशन निर्देशिका में उपयोग करने का निर्णय लिया । यह एक बुरा निर्णय था, क्योंकि इसने मुझे npm के साथ एक आम और विनाशकारी समस्या में चला दिया ।

समाधान नोड्ज और एनपीएम को फिर से स्थापित करना है। दुर्भाग्य से जब मैं npm का उपयोग करने के लिए sudo apt-get install npmइसे काम नहीं करता स्थापित करने के लिए जाओ ।

टर्मिनल में पूर्ण त्रुटि यहाँ है:

Some packages could not be installed. This may mean that you have requested
an impossible situation or if you are using the unstable distribution that 
some required packages have not yet been created or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
   Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
   Depends: node-ansi but it is not going to be installed
   Depends: node-archy but it is not going to be installed
   Depends: node-block-stream but it is not going to be installed
   Depends: node-fstream (>= 0.1.22) but it is not going to be installed
   Depends: node-fstream-ignore but it is not going to be installed
   Depends: node-github-url-from-git but it is not going to be installed
   Depends: node-glob (>= 3.1.21) but it is not going to be installed
   Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
   Depends: node-inherits but it is not going to be installed
   Depends: node-ini (>= 1.1.0) but it is not going to be installed
   Depends: node-lockfile but it is not going to be installed
   Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
   Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
   Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
   Depends: node-gyp (>= 0.10.9) but it is not going to be installed
   Depends: node-nopt (>= 2.1.1) but it is not going to be installed
   Depends: node-npmlog but it is not going to be installed
   Depends: node-once but it is not going to be installed
   Depends: node-osenv but it is not going to be installed
   Depends: node-read but it is not going to be installed
   Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
   Depends: node-request (>= 2.25.0) but it is not going to be installed
   Depends: node-retry but it is not going to be installed
   Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
   Depends: node-semver (>= 2.1.0) but it is not going to be installed
   Depends: node-sha but it is not going to be installed
   Depends: node-slide but it is not going to be installed
   Depends: node-tar (>= 0.1.18) but it is not going to be installed
   Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

एनपीएम को ठीक से स्थापित करने और फिर से चलाने के लिए मैं क्या कर सकता हूं?

धन्यवाद।

जवाबों:


29

अपडेट करें

इस जवाब के नीचे विलियम एंट्रिएक की टिप्पणी के बारे में, उबंटू में Node.js को स्नैप पैकेज के रूप में स्थापित करने का एक बेहतर तरीका है।

Node.js उबंटू के सभी वर्तमान में समर्थित संस्करणों में एक स्नैप पैकेज के रूप में उपलब्ध है। Node.js के लिए विशिष्ट, डेवलपर्स वर्तमान में समर्थित रिलीज़ में से एक या अधिक से चुन सकते हैं और सीधे NodeSource से स्वचालित अपडेट प्राप्त कर सकते हैं। Node.js संस्करण 6, 8, 9, 10, 11, 12 और 13 वर्तमान में उपलब्ध हैं, जिसमें स्नैप स्टोर Node.js रिलीज़ के कुछ घंटों या मिनटों के भीतर अपडेट किया जाता है।

उदाहरण के लिए, नोड को एकल कमांड के साथ स्थापित किया जा सकता है:

sudo snap install node --classic --channel 9/stable 

नोड स्नैप को कमांड द्वारा एक्सेस किया जा सकता है node, उदाहरण के लिए:

$ नोड -v  
v9.9.0

Npm का एक अप-टू-डेट संस्करण नोड स्नैप के भाग के रूप में स्थापित होगा। npm को आपके सामान्य शेल में नोड रिप के बाहर चलाया जाना चाहिए। नोड स्नैप स्थापित करने के बाद npm अद्यतन जाँच सक्षम करने के लिए निम्नलिखित कमांड चलाएँ:

sudo chown -R $ USER: $ (id -gn US USER) / घर / अपना-उपयोगकर्ता नाम /.config

your-usernameउपर्युक्त कमान में अपने स्वयं के उपयोगकर्ता नाम के साथ बदलें । npm -vयदि npm का संस्करण अद्यतित है, तो जाँच करने के लिए चलाएँ । उदाहरण के रूप में मैंने जाँच की कि npm अप-टू-डेट था, कमांड के साथ यार्न नामक पहले से स्थापित पैकेज के संस्करण की जाँच की npm list yarnऔर फिर मौजूदा यार्न पैकेज को कमांड के साथ नवीनतम संस्करण में अपडेट किया।npm update yarn

उपयोगकर्ता उदाहरण के लिए nvm (नोड संस्करण प्रबंधक) जैसे अतिरिक्त टूल को शामिल किए बिना किसी भी समय Node.js के संस्करणों के बीच स्विच कर सकते हैं:

sudo snap refresh node --channel=8/stable

उपयोगकर्ता नवीनतम एज चैनल से स्थापित किए जा सकने वाले Node.js के ब्लीडिंग-एज संस्करणों का परीक्षण कर सकते हैं जो वर्तमान में Node.js संस्करण 12 को इसके साथ स्विच करके ट्रैक कर रहा है:

sudo snap switch node --edge

यह दृष्टिकोण केवल उन उपयोगकर्ताओं के लिए अनुशंसित है जो परीक्षण और बग रिपोर्टिंग अपस्ट्रीम में भाग लेने के इच्छुक हैं।


मूल उत्तर

वर्तमान में Ubuntu के सभी समर्थित संस्करणों में Node.js (npm) के लिए Node.js (नोडज) और पैकेज मैनेजर के नवीनतम LTS संस्करण स्थापित करने के लिए, टर्मिनल खोलें और निम्नलिखित कमांड चलाएं:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs  

यदि आप इन तीन कमांड को कॉपी कर रहे हैं, तो दूसरी कमांड के अंत में हाइफन की उपेक्षा न करें।

nodejsपैकेज में शामिल है nodejsऔर साथ ही द्विआधारी npm, तो आप स्थापित करने की आवश्यकता नहीं है npmअलग से। हालांकि, npmकाम करने के लिए कुछ पैकेजों के लिए (जैसे कि स्रोत से निर्माण की आवश्यकता होती है), आपको build-essentialपैकेज स्थापित करने की आवश्यकता होगी :

sudo apt-get install build-essential  

LTS प्लान

Node.js के नए सेवर-प्रमुख रिलीज़ को masterहर छह महीने में काट दिया जाता है । नए समान संख्या वाले संस्करण (जैसे v6, v8, v10, आदि) अप्रैल में काटे जाते हैं। नए विषम संख्या वाले संस्करण (जैसे v5, v7, v9) अक्टूबर में काटे जाते हैं।

जब एक नई विषम-संख्या वाली प्रमुख रिलीज़ में कटौती की जाती है, तो पिछली सम-संख्या वाले प्रमुख संस्करण में लॉन्ग टर्म सपोर्ट प्लान में बदलाव होता है।

एलटीएस योजना द्वारा कवर किए गए प्रत्येक प्रमुख संस्करण को एलटीएस कवरेज में प्रवेश करने की तारीख से 18 महीने की अवधि के लिए सक्रिय रूप से बनाए रखा जाएगा। उन 18 महीनों के सक्रिय समर्थन के बाद, प्रमुख संस्करण 12 अतिरिक्त महीनों के लिए "रखरखाव" मोड में संक्रमण करेगा।

गैर-एलटीएस स्थापना

मार्च, 2017 तक वर्तमान में Node.js (जिस समय यह पोस्ट किया गया था v8) का नवीनतम गैर-एलटीएस संस्करण स्थापित करने के आदेश निम्नानुसार हैं:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs  

Node.js LTS अनुसूची

रिलीज़ LTS स्थिति कोडनाम LTS प्रारंभ रखरखाव रखरखाव प्रारंभ करें
6.x सक्रिय बोरान 2016-10-18 अप्रैल 2018 अप्रैल 2019
7.x कोई एलटीएस              
8. एक्स एक्टिव कार्बन 2017-10-31 अप्रैल 2019 दिसंबर 2019
9.x कोई एलटीएस नहीं              
10.x सक्रिय डुबनियम अक्टूबर 2018 अप्रैल 2020 अप्रैल 2021  
11.x No LTS 2019-04-01 2019-06-30
12.x 2019-10-22 2021-04-01 2022-04-01
13.x No LTS 2020-04-20 2020-06-01


"sudo apt-get install -y नोडज" का उपयोग करके मेरे लिए काम किया
कुमार

इस पद्धति के लिए MANY पार्टियों पर भरोसा करना और फिर अपने कंप्यूटर को deb.nodesource.com पर पूर्ण एक्सेस देना आवश्यक है, एक ऐसी इकाई जिसे आपकी सुरक्षा के लिए सामग्री हैश शामिल करने के लिए प्रत्येक वेबसाइट को अपडेट करने के लिए भी परेशान नहीं किया जा सकता है। जी नहीं, धन्यवाद!
विलियम एंट्रिएन

@WilliamEntriken Node.js अब उबंटू में एक स्नैप पैकेज है जिसे curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -कमांड चलाने की आवश्यकता नहीं है । इसके बजाय Node.js को एक स्नैप पैकेज के रूप में स्थापित किया जा सकता है। मैंने अपने उत्तर में एक नया अपडेट सेक्शन जोड़ा है जिसमें Node.js स्नैप पैकेज को स्थापित करने के निर्देश हैं।
कारेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.