node.js: / sbin / node vs / usr / bin / node

32

Eu tenho duas máquinas Ubuntu 12.10: a máquina A é uma VM VMWare e a máquina B é um velho laptop Acer. Em ambas as máquinas, instalei o nó usando o apt-get. No entanto, a máquina A instala o binário principal como /usr/bin/node e a máquina B como /usr/bin/nodejs . Aqui estão alguns comportamentos que eu observei:

  1. A máquina retorna /usr/bin/node em resposta ao comando which node . No entanto, não existe esse arquivo na máquina B.
  2. Emitir o comando node funciona para a máquina A, não para B. Em B, preciso usar nodejs .
  3. Em B, existe um binário chamado / sbin / node, A não o possui.

Esses comportamentos causam problemas de inconsistência ao desenvolver em ambas as máquinas. Por enquanto, eu trabalhei ao redor, renomeando os binários em B como tal:

sudo mv /sbin/node /sbin/node-sbin
sudo ln -s /usr/bin/nodejs /usr/bin/node

Existe uma maneira de realmente corrigir isso, para que esse nó seja instalado como /usr/bin/node em vez de /usr/bin/nodejs ?

    
por Hai Vu 03.01.2013 / 15:30

7 respostas

15

No Ubuntu 13.10, todas as respostas acima não funcionaram para mim. Finalmente funcionou quando eu instalei o nodejs-legacy

sudo apt-get install nodejs-legacy

Isso forneceu corretamente /usr/bin/node para mim, de modo que e. g. nodemon pode ser usado.

    
por Teetrinker 29.03.2014 / 21:12
36

update: modificou as instruções abaixo para usar o pacote nodejs-legacy . ( mais informações sobre o legado de nó )

Tente remover completamente o pacote do nó em conflito:

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

sudo apt-get install nodejs-legacy

# Confirm it worked
node --version       # v0.10.13
ls -la 'which node'  # ... /usr/bin/node -> /etc/alternatives/node

Isso aconteceu comigo quando instalei inadvertidamente o pacote non-node.js node . Embora eu tenha apt-get remove node antes de instalar o pacote nodejs correto, acho que o argumento --purge é necessário.

Informações básicas :

  

Existe um conflito de nomes com o pacote do nó (Amateur Packet Radio   Programa de Nó), eo binário do nodejs foi renomeado de nó para   nodejs. Você precisará criar um link simbólico / usr / bin / node para / usr / bin / nodejs ou   poderia desinstalar o Programa de Nó de Rádio de Pacote Amador para evitar que   conflito.

    
por Leftium 15.07.2013 / 15:16
11

Infelizmente para mim, criar um link simbólico não funcionou. O que funcionou para mim foi criar um alias. Em ~/.bashrc ou ~/.bash_aliases (se ~/.bashrc carregar este arquivo), basta adicionar a seguinte linha:

alias node="nodejs"

Reinicie sua sessão bash digitando bash no console e seu alias agora funcionará.

    
por Aust 21.03.2013 / 18:33
7

Acho que é isso:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

Usando alternativas do Debian.

    
por user229115 30.12.2013 / 19:10
1

Resposta tardia, mas para informações atualizadas ...

Se você instalar node.js usando o método recommend da instalação do node github readme , sugere seguir as instruções no artigo de blog do nodesource , em vez de instalar a partir do repositório desatualizado apt-get, o node.js deve ser executado usando o comando node , bem como o comando nodejs , sem precisar criar um novo link simbólico.

Este método do artigo é:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

Note que isto é para a v0.12, que provavelmente se tornará desatualizada no futuro não distante.

Além disso, se você estiver por trás de um proxy corporativo (como eu), você vai querer adicionar a opção -E ao comando sudo, para preservar o env vars necessário para o proxy:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
    
por Erresen 01.06.2015 / 09:19
1

Em ubuntu 14.04 eu tive o mesmo problema de nó. Eu não estava trabalhando "nó" e trabalhando "nodejs". Acabei de fazer

sudo apt-get remove node

e logo depois disso, o node estava rodando, e o nodejs está rodando também :) Eu sou novo no Linux e isso é um erro para mim. No entanto, Bower está correndo !!!

    
por Georgi Danchev 10.07.2016 / 09:04
0
sudo getconf LONG_BIT
sudo uname -p
  • Confirme sua arquitetura de CPU
  • Encontre sua distribuição node.js na árvore de diretórios no link (note: várias versões de várias distribuições node.js para várias arquiteturas de CPU )

Minha área de trabalho é atualmente Ubuntu 15.10 AMD64, então usarei a seguinte URL no meu exemplo de instalação (novamente, distrib's vary):

sudo wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz

Em seguida, altere o diretório para o seu diretório de download:

sudo cd /home/name/Downloads

No seu diretório de download, execute o seguinte:

sudo tar -C /usr/local --strip-components 1 -xzf node-v5.0.0-linux-x64.tar.gz

Confirme sua instalação do node.js com o seguinte:

sudo ls -l /usr/local/bin/node
sudo ls -l /usr/local/bin/npm

ref. link

    
por nick indiessance 12.11.2015 / 21:50