web-dev-qa-db-fra.com

noeud: commande non trouvée

Je ne comprends pas pourquoi la commande node ne fonctionnera pas, alors que nodejs fonctionne:

$ node --version
zsh: command not found: node
$ nodejs --version
v0.10.15

J'ai essayé apt-get install nodejs, mais la dernière version est déjà installée.

Et en plus:

$ npm
zsh: command not found: npm

Je pensais que npm était inclus dans NodeJS> 0.10?

47
Matthieu Napoli

Le package noden'est pas lié à NodeJS. Voir ici pour des informations sur noeud Install node :

Amateur Packet Radio Node programme (paquet transitoire)


Vous devriez plutôt installer le nodejsname__ Install nodejs package.

Sudo apt-get install nodejs

utilisez-le ensuite avec la commande nodejsname__.

La raison pour laquelle nodene fonctionne pas est probablement due à des conflits avec le package noded'origine lié ci-dessus.


Si vous voulez npmname__ Install npm , vous devrez également l’installer.

Sudo apt-get install npm
43
kiri

Je suis d'accord, c'est un peu un problème mais je ne sais pas pourquoi cela se produit.

Le correctif

Commençons par commencer, créez simplement un lien symbolique appelé nodepointant vers le binaire nodejsname__.

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

Le problème

Quelques guides que j'ai trouvés pour installer Nodejs ( here et here ) ont tous un code similaire pour tester si l'installation s'est bien déroulée. Donc, essentiellement, créez un serveur simple comme ceci:

// hello_node.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

puis exécutez-le dans nodejs avec les éléments suivants:

node hello_node.js

Et puis, lorsque j'essayais d'utiliser npm pour installer quelque chose, il échouait et signalait le même message node not found.

46
jlouzado

Comme @ minerz029, il existe déjà un conflit avec le paquet node. Mais si vous avez toujours besoin de la commande node (car un script utilise uniquement node par exemple), la méthode correcte consiste à installer le package nodejs-legacy :

apt-get install nodejs-legacy

et ne créez pas vous-même un lien symbolique (surtout pas dans /usr/bin/). Cela fournira une commande node pour nodejs.

26
F.Raab

Essaye ça

curl -sL https://deb.nodesource.com/setup_6.x | Sudo -E bash -

Sudo apt-get install -y nodejs

:)

1
MUHASIN BABU

pouvez-vous avoir besoin d'installer manuellement

Sudo apt-get install npm
1
Ahmed Al-battashi

Comme mentionné par minerz029 , certaines versions du paquet nodejs ne fourniront pas le binaire node en raison du fait qu'un autre paquet a déjà utilisé ce nom. La solution est aussi simple que de suivre les étapes d'installation sur le site Web de Node:

Installation de Node.js via le gestionnaire de paquets | Distributions Linux basées sur Debian et Ubunt

Pour le moment, ces étapes sont les suivantes:

curl -sL https://deb.nodesource.com/setup_8.x | Sudo -E bash -
Sudo apt-get install -y nodejs

Mais il serait préférable de vérifier le lien source pour vous assurer que vous utilisez la dernière version.

0
bmaupin

Une solution rapide pour les utilisateurs de nvm. J'utilise nvm (gestionnaire de version de noeud) et pour pouvoir utiliser la commande npm, je dois toujours émettre avant npm cette commande nvm use 0.x (remplacer 0.x par 0.11 ou 0.10 par exemple, la version que vous souhaitez utiliser).

0
Karl Morrison