L'installation normale serait Sudo apt install nodejs
pour installer Node.js, puis Sudo apt install npm
pour installer Node Gestionnaire de packages. Cependant, npm -v
dit 3.5.2
. Pour effectuer une mise à niveau normale, je ferais Sudo npm install -g npm
, qui met à jour la dernière version (qui, au moment de la rédaction de cet article, est 6.0.1
).
Quand je fais un which npm
, j'obtiens /usr/local/bin/npm
, cependant apt
installe un lien symbolique à /usr/bin/npm
. Si je Sudo apt purge npm
pour supprimer npm, la version de npm de npm reste toujours à /usr/local/bin/npm
, cependant npm -v
indique -bash: /usr/bin/npm: No such file or directory
.
Beaucoup d'articles disent d'utiliser un PPA pour installer nodejs, mais je pense qu'il devrait exister un moyen natif de le faire via apt
name__.
Instructions DigitalOcean sur l'installation normalement et par PPA: https://www.digitalocean.com/community/tutorials/how-to-install -node-js-on-ubuntu-18-04
Instructions TecAdmin pour l'installation via PPA: https://tecadmin.net/install-latest-nodejs-npm-on-ubuntu/
TLDR: Ce problème est dû à Bash met en cache le chemin de la commande npm
et peut être résolu par hash -d npm
. Vous n'avez même pas besoin de traiter avec apt purge
sauf si vous le souhaitez.
Voici mes étapes pour obtenir une nouvelle version de npm
sur Ubuntu. Commencez par installer comme décrit par OP:
$ 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)
Vous pouvez voir que la nouvelle version fonctionne déjà bien dans /usr/local/bin/npm
, mais malheureusement, le cache Bash a toujours /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)
Pour résoudre le problème, effacez-le du cache Bash (procédez comme suit dans tous les shells ouverts):
$ hash -d npm
Maintenant, la nouvelle version fonctionne comme vous le souhaitez:
$ npm -v
6.4.1
$ command -v npm
/usr/local/bin/npm
La méthode que j'ai trouvée consiste à purger npm via Sudo apt purge npm
, puis à simplement recréer un lien symbolique vers l'installation globale via ln -s /usr/local/bin/npm /usr/bin/npm
. Après cette correction, npm -v
renvoie 6.0.1
comme prévu.
Pour avoir le contrôle sur la version npm installée, j'utilise toujours nvm
(contrôle de version de noeud). Vous pouvez l'installer en suivant les instructions suivantes: https://github.com/creationix/nvm Ensuite, en installant la commande suivante, installez le dernier npm sur votre ordinateur:
nvm install node