nó: comando não encontrado

46

Não entendo por que o nodecomando não funcionará, enquanto nodejsfunciona:

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

Eu tentei apt-get install nodejs, mas a versão mais recente já está instalada.

E além disso:

$ npm
zsh: command not found: npm

Eu pensei que npmestava incluído no NodeJS> 0,10?

Matthieu Napoli
fonte
pode este post resolver o seu problema [Stackoverflow] [1] [1]: stackoverflow.com/questions/13593902/node-command-not-found
Ahmed Al-battashi
@ AhmedAl-battashi Não ajuda, eu já li. NodeJS está instalado, nodejsestá no PATH, mas nodee npmnão estão disponíveis, não posso encontrá-los em qualquer lugar no meu sistema.
Matthieu Napoli 13/01
2
Não tenho muita certeza, mas lembro-me de que o motivo pelo qual o nodebinário foi renomeado foi porque conflitava com um dos pacotes chamados node(Programa de Nó de Rádio de Pacotes Amadores).
yjwong
Tem certeza de que está procurando nodee não nodejs? nodenão é o que você pensa que é.
Braiam
@Braiam nodeé usado em cada tutorial que eu vi
Matthieu Napoli

Respostas:

43

O nodepacote não está relacionado ao NodeJS. Consulte aqui para obter informações sobre o Nó de instalação :

Programa Amateur Nó de Rádio por Pacotes (pacote de transição)


Você deve instalar o nodejs Instalar nodejspacote.

sudo apt-get install nodejs

depois use-o com o nodejscomando

O motivo nodenão funciona é provável devido a conflitos com o nodepacote original vinculado acima.


Se você quiser npm Instalar npm, precisará instalá-lo também.

sudo apt-get install npm
kiri
fonte
3
Eu sabia sobre o nodepacote, no entanto, não vejo por que um pacote de nomes tem alguma influência na ferramenta de linha de comando. Por exemplo, eu não instalo php, mas php5-cli. Mas obrigado pela resposta, não tinha certeza se a instalação manual npmseria um problema, aparentemente não é.
Matthieu Napoli
2
A instalação do nodejs-legacypacote permite usar nodeou nodejs.
grooveplex
48

Concordo, isso é um pouco problemático, mas não sei por que isso está acontecendo.

O conserto

Primeiramente, basta criar um link simbólico chamado chamado nodeapontando para o nodejsbinário.

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

O problema

Alguns guias que encontrei para instalar o Nodejs ( aqui e aqui ) têm código semelhante para testar se a instalação ocorreu corretamente. Então, crie essencialmente um servidor simples como este:

// 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/');

e, em seguida, execute-o no nodejs com o seguinte:

node hello_node.js

E então, quando eu estava tentando usar o npm para instalar algo, estava falhando e relatando a mesma node not foundmensagem.

jlouzado
fonte
Eu tenho o mesmo problema, sudo apt-get install npm e, em seguida, seguindo a recomendação @jlouzado, conclua o trabalho. Agora está funcionando bem
user615274 30/11/2015
5
Dica engraçada: existe um pacote nodejs-legacy que fornece o link simbólico, supostamente para compatibilidade com o "código legado" que ainda depende dele.
Simón
1
@ Simón Eu acho que é uma solução melhor do que fazer um link simbólico.
grooveplex
Então agora estou contando 3 pacotes que tenho que instalar se estiver fazendo basicamente alguma coisa com o Node.js. Estou tentando instalar essa biblioteca do Node.js há uma hora.
Sudo
Não foi possível instalar asciicast2gifporque durante a instalação ele é executado node install.jse recebo o erro sh: 1: node: not found. Isso corrige isso.
Vinayak
26

Como o @ minerz029 já disse que há um conflito com o nodepacote. Mas se você ainda precisar do nodecomando (porque um script usa apenas nodepor exemplo), a maneira correta é instalar o nodejs-legacypacote:

apt-get install nodejs-legacy

e não crie um link simbólico por conta própria (especialmente não em /usr/bin/). Isso fornecerá um nodecomando para o nodejs.

F.Raab
fonte
2
Funciona. Eu acho que isso é melhor do que a resposta do @ jlouzado.
Shawn Xie
a menos que você freqüentemente "comece do zero" com a instalação do seu sistema operacional .... MUITO melhor deixar o apt gerenciar symlinks na lixeira. Obrigado!
Mike12 /
2

Tente isto

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

sudo apt-get install -y nodejs

:)

MUHASIN BABU
fonte
2
Por que você não está instalando a versão mais recente ?curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
karel
setup_6.x é estável
MUHASIN BABU
A política do LTS para o Node.js. versão 8 é que ele está pendente do LTS agora, começa a ser LTS em alguns meses em outubro de 2017, inicia o período de manutenção em abril de 2019 e termina a manutenção em dezembro de 2019. Para mais informações veja a tabela nesta resposta: askubuntu.com/questions/626383/…
karel
1

pode ser necessário instalar manualmente

sudo apt-get install npm
Ahmed Al-battashi
fonte
1
Eu li todos os lugares que eu não deveria instalar npm manualmente, pois foi incluído em> v0.10: / Eu sou um pouco perdido
Matthieu Napoli
0

Uma solução rápida para os nvmusuários. Eu uso nvm(gerenciador de versão do nó) e para usar o npmcomando sempre devo emitir antes npmdesse comando nvm use 0.x(substitua 0.xpor, 0.11ou 0.10por exemplo, a versão que você deseja usar).

Karl Morrison
fonte
0

Como o minerz029 já mencionou , certas versões do nodejspacote não fornecerão o nodebinário devido a outro pacote anteriormente usando esse nome. A solução é tão simples quanto seguir as etapas de instalação no site do Node:

Instalando o Node.js através do gerenciador de pacotes | Distribuições Linux baseadas em Debian e Ubuntu

No momento, essas etapas são:

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

Mas seria melhor verificar o link da fonte para garantir que você esteja usando a versão mais recente.

bmaupin
fonte