Düğüm Paketi Yöneticisi bir şekilde bozuldu, şimdi kurulamıyor


14

Bugün npm update -gbir nodejs uygulama dizininde kullanmaya karar verdiğimde bir sorunla karşılaştım. Bu kötü bir karardı, çünkü npm ile ilgili ortak ve feci bir sorunla karşılaşmamı sağladı .

Çözüm, nodejs ve npm'yi yeniden yüklemektir. Ne yazık ki npm kullanarak yüklemek için gittiğinizde sudo apt-get install npmişe yaramaz.

Terminaldeki tam hata burada:

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.

Npm'nin düzgün bir şekilde kurulmasını ve tekrar çalışmasını sağlamak için ne yapabilirim?

Teşekkürler.

Yanıtlar:


29

Güncelleme

William Entriken'in bu cevabın altındaki yorumu ile ilgili olarak, Node.js'yi Ubuntu'ya yerel olarak bir ek paket olarak kurmanın daha iyi bir yolu var.

Node.js, şu anda desteklenen tüm Ubuntu sürümlerinde ek paket olarak kullanılabilir. Node.js'ye özgü olarak, geliştiriciler şu anda desteklenen sürümlerden bir veya daha fazlasını seçebilir ve doğrudan NodeSource'tan düzenli otomatik güncellemeler alabilirler. Node.js 6, 8, 9, 10, 11, 12 ve 13 sürümleri şu anda kullanılabilir; Snap Store, Node.js sürümünün saatler veya dakikalar içinde güncellenir.

Düğüm tek bir komutla kurulabilir, örneğin:

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

Düğüm ekine komutla erişilebilir node, örneğin:

$ düğüm -v  
v9.9.0

Düğüm ekinin bir parçası olarak npm'in güncel bir sürümü yüklenir. npm, normal kabuğunuzda düğüm yanıtının dışında çalıştırılmalıdır. Düğüm ekini yükledikten sonra, npm güncelleme kontrolünü etkinleştirmek için aşağıdaki komutu çalıştırın:

sudo chown -R $ USER: $ (id -gn $ USER) / home / kullanıcı adınız /.config

your-usernameYukarıdaki komutta kendi kullanıcı adınızla değiştirin . Ardından npm -v, npm sürümünün güncel olup olmadığını kontrol etmek için çalıştırın . Örnek olarak, npm'nin güncel olduğunu kontrol ettim, önceden kurulmuş bir paketin iplik adlı komutunu komutla kontrol ettim npm list yarnve sonra mevcut iplik paketini komutla en son sürüme güncelledimnpm update yarn

Kullanıcılar nvm (Düğüm Sürümü Yöneticisi) gibi ek araçlara ihtiyaç duymadan Node.js sürümleri arasında istedikleri zaman geçiş yapabilirler, örneğin:

sudo snap refresh node --channel=8/stable

Kullanıcılar, şu anda Node.js sürüm 12'yi izleyen en son kenar kanalından yüklenebilen Node.js'nin son teknoloji sürümlerini şu yöntemlerle test edebilir:

sudo snap switch node --edge

Bu yaklaşım, yalnızca test öncesi ve hata raporlamaya katılmak isteyen kullanıcılar için önerilir.


Orijinal cevap

Ubuntu'nun şu anda desteklenen tüm sürümlerine Node.js (nodejs) ve Node.js (npm) için Paket yöneticisinin en son LTS sürümlerini yüklemek için terminali açın ve aşağıdaki komutları çalıştırın:

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  

Bu üç komutu kopyalıyorsanız, ikinci komutun sonundaki tireyi ihmal etmeyin.

nodejsPaket içeriği nodejsyanı sıra ikili npmyüklemeye gerek kalmaz, npmayrı ayrı. Ancak, bazı npmpaketlerin çalışması için (kaynaktan derleme gerektiren paketler gibi), build-essentialpaketi yüklemeniz gerekir :

sudo apt-get install build-essential  

LTS Planı

Node.js'nin yeni semver-major sürümleri masteraltı ayda bir kesiliyor . Yeni çift sayılı sürümler (örn. V6, v8, v10 vb.) Nisan ayında kesilmiştir. Yeni tek numaralı sürümler (örneğin v5, v7, v9) Ekim ayında kesildi.

Yeni bir tek sayılı büyük sürüm kesildiğinde, önceki çift sayılı büyük sürüm Uzun Süreli Destek planına geçer.

LTS planının kapsadığı her büyük sürüm, LTS kapsamına girdiği tarihten itibaren 18 ay boyunca aktif olarak korunacaktır. Bu 18 aylık aktif desteği takiben, ana sürüm 12 ay daha "bakım" moduna geçecektir.

LTS dışı kurulum

Mart 2017'de, Node.js'nin en son LTS olmayan sürümünü (bu yayınlandığı sırada v8) yükleme komutları aşağıdaki gibidir:

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 Zamanlaması

Bırakın LTS Durum Kod Adı LTS Bakım Başlat Bakım Bakım Bitir
6.x Aktif Bor 2016-10-18 Nisan 2018 Nisan 2019
7.x LTS yok              
8.x Aktif Karbon 2017-10-31 Nisan 2019 Aralık 2019
9.x LTS yok              
10.x Active Dubnium Ekim 2018 Nisan 2020 Nisan 2021  
11.x LTS Yok 2019-04-01 2019-06-30
12.x 2019-10-22 2021-04-01 2022-04-01
13.x LTS yok 2020-04-20 2020-06-01


"sudo apt-get install -y nodejs" kullanarak benim için çalıştı
Davinder Kumar

Bu yöntem, ÇOK taraflara güvenmeyi ve daha sonra, güvenliğiniz için içerik karmasını dahil etmek için her sürümü web sitelerini güncellemekle bile uğraşamayan deb.nodesource.com'a tam erişim vermenizi gerektirir. Hayır teşekkürler!
William Entriken

@WilliamEntriken Node.js artık Ubuntu'da curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -komutun çalıştırılmasını gerektirmeyen bir ek paket . Bunun yerine Node.js bir ek paket olarak yüklenebilir. Cevabıma Node.js ek paketini yükleme yönergelerini içeren yeni bir Güncelleme bölümü ekledim .
karel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.