NPM, en son Ubuntu (18.04) kurulumunda yanlış sürüm


19

Normal yükleme, sudo apt install nodejsNode.js'yi ve ardından sudo apt install npmNode Package Manager'ı yüklemek olacaktır. Ancak bunu yaptıktan sonra npm -vdiyor 3.5.2. Normal olarak yükseltmek sudo npm install -g npmiçin, en son sürüme (bu makaleyi yazarken olduğu gibi 6.0.1) güncellenen yapardım .

Ben yaptığınızda which npm, benim hemen /usr/local/bin/npmAncak aptbir sembolik yükler /usr/bin/npm. Ben sudo apt purge npmnpm kaldırmak için, yine de npm npm sürümünü bırakır /usr/local/bin/npm, ancak npm -vdiyor -bash: /usr/bin/npm: No such file or directory.

Birçok makale nodejs yüklemek için bir PPA kullandığını söylüyor, ancak bence bunu yapmanın yerel bir yolu olmalı apt.

Normal ve PPA üzerinden kurulumla ilgili DigitalOcean talimatları: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04

PPA üzerinden kurulumla ilgili TecAdmin talimatları: https://tecadmin.net/install-latest-nodejs-npm-on-ubuntu/

Yanıtlar:


33

TLDR: Bu sorun kaynaklanır yolu önbelleğe Bash ait npmkomuta ve çözülebilir hash -d npm. İstemediğiniz apt purgesürece uğraşmanıza bile gerek yok .

açıklama

İşte npmUbuntu'da yeni bir sürüm edinme adımlarım . İlk olarak, OP'nin açıkladığı gibi kurulumu yapın:

$ sudo apt-get install npm
(...apt installation of npm was successful...)
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ sudo npm install -g npm
(...npm installation of npm was successful...so far, so good)

Yeni sürümün zaten iyi çalıştığını görebilirsiniz /usr/local/bin/npm, ancak ne yazık ki Bash önbelleği hala var /usr/bin/npm:

$ /usr/local/bin/npm -v
6.4.1
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ type npm
npm is hashed (/usr/bin/npm)

Sorunu gidermek için Bash önbelleğinden temizleyin (bunu tüm açık kabuklarda yapın):

$ hash -d npm

Şimdi yeni sürüm istendiği gibi çalışıyor:

$ npm -v
6.4.1
$ command -v npm
/usr/local/bin/npm

1
Aslında bu cevabı kendiminkinden daha çok seviyorum.
Blairg23

Bu benim sorunumu çözdü. Çok teşekkür ederim. Büyük açıklama da. Benim için belirsiz olan tek şey, bash önbelleğini temizlemenin sorunu neden çözdüğünün kesin doğası. npmDepolanan yeri silmek daha iyi olmaz /usr/bin/npmmı? Her iki sürüm de yüklü kalırsa, bash önbelleğini temizledikten sonra neden doğru sürüm alınır?
temporary_user_name

12

Bulduğum yol sudo apt purge npm, npm'yi temizlemektir , daha sonra üzerinden global kurulum için bir symlink'i yeniden oluşturmaktır ln -s /usr/local/bin/npm /usr/bin/npm. Bu düzeltmeden sonra beklendiği gibi npm -vdöner 6.0.1.


2
Android 6.0.1'de UserLAnd üzerinden çalışan Ubuntu 18.04 ile çalıştı . Teşekkür ederim! :)
l3l_aze

1
OP bunu cevap olarak işaretlemelisin.
Robert Munn

Garip bir şey, benim için oldukça farklıydı. Güncellenmiş sürümü vardı /usr/bin/npm, bu yüzden kullanarak ters rota gitti ln -s /usr/bin/npm /usr/local/bin/npm. Garip, ama cevabın yanlış sürüm sorunuyla nasıl başa çıkacağımı öğrenmeme yardımcı oldu.
LordAnomander

2

Yüklü npm sürümü üzerinde kontrol sahibi olmak için her zaman kullanıyorum nvm(düğüm sürümü kontrolü). Buradaki talimatları izleyerek kurabilirsiniz : https://github.com/creationix/nvm Ardından, aşağıdaki komutu uygulayarak bilgisayarınıza en son npm'yi yükleyin:

nvm install node

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.