nodejs vs node en ubuntu 12.04

363

Instalé nodejs en ubuntu de las instrucciones dadas aquí

Cuando escribo node --versionen la terminal veo esto:
-bash: /usr/sbin/node: No such file or directory

Sin /usr/sbin/embargo, puedo ver el nodo en el directorio.

Escritura de npm --versionespectáculos 1.3.5
Escritura de nodejs --versionespectáculosv0.10.15

Además, puedo ver el nodo en el /usr/bin/directorio.

Entonces, ¿cómo me pongo a nodetrabajar?

Además, si uso zsh en lugar de bash, entonces el nodecomando funciona.

Jatin
fuente
1
Si "ve el nodo en / usr / bin /", ¿cuál es la salida de ls -l /usr/bin/node?
randunel
1
@randunel Tengo esta salidalrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
Jatin
¿Hiciste algún cambio en shell rc?
randunel
Esto parece un problema de shell después de su edición, ¿qué genera la export | grep PATHsalida cuando no se usa zsh? (debería imprimir /usr/binentre otras cosas)
randunel
1
solución + explicación aquí: stackoverflow.com/questions/21168141/…
throbi

Respuestas:

599

Necesita crear manualmente un enlace simbólico /usr/bin/node. Atajo para proyectiles compatibles con bash:

sudo ln -s `which nodejs` /usr/bin/node

O si usa shells no estándar, simplemente codifique la ruta que encuentre con which nodejs:

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

Editar más tarde

Encontré esta explicación en el enlace que publicaste

Existe un conflicto de nomenclatura con el paquete de nodos (Programa de nodo de radio de paquetes de aficionados), y el binario nodejs ha cambiado de nombre de nodo a nodejs. Deberá vincular / usr / bin / node a / usr / bin / nodejs o puede desinstalar el Programa de nodo de radio de paquetes de aficionados para evitar ese conflicto.

Más tarde más tarde editar

Ha pasado un tiempo desde que respondí esto. Aunque la solución que publiqué aquí funcionó para mí varias veces, los usuarios han informado algunas soluciones más en los comentarios:

Desde @ user229115

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

De AskUbuntu (usuario leftium)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs
randunel
fuente
¡bueno! Aunque, si lo uso zsh, entonces el nodecomando funciona.
Jatin
1
Además, ¿cómo desinstalo el programa Amateur Packet Radio Node? Lo intenté sudo apt-get remove nodepero dicePackage node is not installed, so not removed
Jatin
No necesita desinstalarlo, después de sus comentarios, esto parece un problema de shell, no un problema de paquete de nodos.
randunel
La respuesta de @ randunel no funcionó para mí, ya /usr/bin/env nodeque no funcionaría. La solución de @ BennyMcBenBen funcionó
francoisrv
2
La respuesta de @Tino es la correcta, consulte la nodejs-legacydescripción del paquete. La respuesta vinculada por @BennyMcBenBen también se ha actualizado con instrucciones similares.
tricasse
88

Creo que esto es todo:

alternativas de actualización de sudo --instalar / usr / bin / node node / usr / bin / nodejs 10

Usando alternativas de Debian.

usuario229115
fuente
3
Esta parece ser la mejor opción que la respuesta aceptada, ya que no cambia manualmente la carpeta / usr / bin / y está utilizando la infraestructura para comandos alternativos
Dominik Fretz
No lo he intentado, pero miré los update-alternativedocumentos. Si realmente funciona, entonces es una mejor solución :)
randunel
3
¿Puedes ser más específico en cuanto a lo que está haciendo?
bcorso
@DominikFretz meh. El resultado final es exactamente el mismo usando un comando específico de Debian versus uno compatible con POSIX. (Podrías haberlo hecho update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10). A cada uno lo suyo, pero prefiero lo simple ln.
kojiro
2
Tenía que hacerlo source ~/.bashrcpara que esto surta efecto
iNulty
64

Aparentemente, la solución difiere entre las versiones de Ubuntu. Lo siguiente funcionó para mí en Ubuntu 13.10:

sudo apt-get install nodejs-legacy

HTH

Editar: Regla general:

Si ha instalado nodejspero le falta el /usr/bin/nodebinario, también instálelo nodejs-legacy. Esto solo crea el enlace suave que falta.

De acuerdo con mis pruebas, Ubuntu 17.10 y superior ya tienen el enlace de compatibilidad compatible /usr/bin/nodedespués de la nodejsinstalación, por nodejs-legacylo que faltan en estas versiones ya que ya no es necesario.

Tino
fuente
parece que nodejs-legacy ya no se mantiene. última compilación se detiene el 10/04/2013
francoisrv
8
nodejs-legacyno necesita mucho mantenimiento. Simplemente agrega un enlace suave similar sudo ln -s nodejs /usr/bin/node, al menos en LTS 14.04
Tino
44
En Ubuntu 14.04, nodejs y nodejs-legacy instalan la misma versión de Node (0.10.25). +1 a @Tino.
Mark E. Haase
También funciona para mí en Debian Jessie. Esta debería ser la respuesta aceptada, ya que así es como deben ser las cosas. Solo las personas que usan el paquete de radioaficionados no deben hacer esto. Me pregunto por qué no cambiaron el nombre del paquete de radio como lo hicieron con chromium-bsu.
Jérôme
Esto dará como resultado 2 instancias de nodo en su sistema y esto ya no se mantendrá ... En su lugar, le recomiendo que enlace a nodejs.
PodTech.io
30

Tengo el mismo problema en Ubuntu 14.04.

He instalado "nodejs" y funciona, pero solo si uso el comando "nodejs". Si trato de usar "nodo" no pasa nada.

Estoy solucionado este problema de la siguiente manera:

  1. Instalar nodejs-legacy

    sudo apt-get install nodejs-legacy

Después de eso, cuando escribo "nodo" en la línea de comando aparece un mensaje de error "/ usr / sbin / node: No existe dicho archivo o directorio"

  1. Segundo, lo que hice, es un enlace simbólico en "nodejs":

    sudo ln -s / usr / bin / nodejs / usr / sbin / node
Dmytro Medvid
fuente
44
Hay algo extraño en su sistema. nodese supone que está instalado /usr/bin/y no /usr/sbin/. Me parece como si hubieras instalado el nodepaquete Ubuntu de hamradio anteriormente (ver packages.ubuntu.com/trusty/all/node/filelist ) y se olvidó de ejecutar hash -ren el nivel de shell, de modo que el shell todavía recordaba la ruta incorrecta. El segundo lnsolucionó eso también, pero ya no es necesario después de abandonar ese shell.
Tino
Por cierto, incluso las respuestas incorrectas son buenas para explicar todos los problemas debido a tres paquetes de nombres muy similares: node( /usr/sbin/nodepara algo completamente diferente), nodejs( /usr/bin/nodejs) y nodejs-legacy( /usr/bin/node, depende del paquete nodejs).
Tino
Esto me pasó a mí también. Había instalado el nodo de la fuente hace algún tiempo. node -v => 0.10.2mientras nodejs -v => 5.5.0. La ejecución del comando which nodesiempre apuntó a esta instalación local. Al final, tuve que hacerlo unset NODE_PATH, lo que señaló la instalación local para solucionarlo. Después de esto, node -v => 5.5.0y npm install comenzó a trabajar para paquetes dependiendo del Nodo => 5.0.
CHsurfer
11

Esto me pasó a mí también.

node -v => 0.10.2
nodejs -v => 5.5.0

El problema era que había instalado el nodo desde la fuente hace algún tiempo. Corriendo

which node

Siempre apuntó a esta instalación local. También,

echo NODE_PATH

señaló a la instalación local.

eliminar el directorio con la instalación de origen no ayudó. Simplemente rompió el comando del nodo. Al final, desarmar la variable de entorno NODE_PATH y purgar y luego reinstalar nodejs fue el truco.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Después de este,

node -v => 5.5.0

y npm install comenzó a funcionar para paquetes dependiendo del Nodo => 5.0.

CHsurfer
fuente
Esto funcionó para mí. Lástima que me metí una hora antes de encontrarlo.
Dustin Fraker
11

Administrador de versiones de nodo (nvm)

Si desea instalar múltiples versiones de nodejs y cambiar fácilmente entre ellas, sugeriría usar Node Version Manager . También resuelve el problema de nombres ( nodevs nodejs)

Es bastante simple:

Instale una versión de nodejs:

$ nvm install 4.4

Ahora tiene nodejs 4.4 además de la versión que ya estaba instalada y puede usar el nodecomando para acceder a la versión recién instalada:

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

Puede instalar más versiones de nodejs y cambiar fácilmente entre ellas:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)
Rotareti
fuente
2
Que se resuelva mi problema, muchas gracias, he encontrado algunos comandos útiles para nvmel Cómo instalar Node.js en un servidor de Ubuntu 14.04
Huy Nguyen
1
Esto funcionó para mí. También hay una guía disponible aquí: digitalocean.com/community/tutorials/…
Koen Cornelis
10

Soy nuevo en todo esto, pero para mí funcionó un simple alias:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

al menos para ejecutar cosas directamente en bash y ejecutar archivos .js.

Phill
fuente
Trabajado sin rlwrap. ¡Gracias!
Shurik
¡Gracias @Phill, eres increíble!
Yusril Herlian Syah
9

¿Qué tal usar las instrucciones oficiales del sitio nodejs? ?

Para v7:

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

Para v6:

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

Para v4:

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

Los probé desde Windows bash (a través del subsistema para Linux - 14.04) y raspbian (basado en ARM Debian). Corriendosudo apt-get install -y nodejs sin ejecutar primero el script de configuración, obtendrá el nodo 0.10.

Si planea instalar módulos npm nativos que requieren compilación, ejecute también:

sudo apt install -y build-essential

Nota: esta es la ruta recomendada para cualquier distribución basada en Debian en todas las arquitecturas.

cchamberlain
fuente
7

Agregando a la respuesta correcta de @ randunel (todavía no puedo comentar sobre SO):

También tuve que vincular / usr / local / bin / node a / usr / bin / nodejs también.

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

Aparentemente, esto estaba anulando el comando / usr / bin / node.

No tengo idea de cómo se configuró, pero espero que ayude a alguien más, ya que fue un dolor descubrir por qué lo anterior no estaba funcionando para mí.

kfblake
fuente
7

Respuesta tardía, pero para información actualizada ...

Si instala node.js utilizando el método recomendado del archivo léame de instalación de github de nodo , sugiere seguir las instrucciones en el artículo del blog de nodeource , en lugar de instalarlo desde la fecha desactualizada apt-get repo, node.js debería ejecutarse usando el nodecomando, así como elnodejs comando, sin tener que hacer un nuevo enlace simbólico.

Este método del artículo es:

# 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

Tenga en cuenta que esto es para v0.12, que probablemente quedará desactualizado en un futuro no muy lejano.

Además, si está detrás de un proxy corporativo (como yo), deseará agregar la opción -E al comando sudo, para preservar los entornos necesarios para el proxy:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -

Erresen
fuente
7

Esto funciona para mi:

alias node=nodejs

Después de seguir las instrucciones en este enlace.

Burak Tutanlar
fuente
4

Si está en una instancia de AWS EC2 que ejecuta una instancia de Ubuntu (probada en Ubuntu 16.x), estos pasos podrían funcionar para usted:

    sudo apt-get update
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get --purge remove legacy-node -y
    sudo rm / usr / bin / node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
    sudo apt-get install nodejs -y
    nodo -v

Si todo es correcto, el último comando tendrá una salida como: v6.xx

Si no es así, ejecute lo siguiente:

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

Esperemos que esto ayude. Me ayudó mágicamente (jeje).

Vivek
fuente
3

Tuve el mismo problema, el enlace simbólico me ayudó: sudo ln -s / usr / bin / nodejs / usr / bin / node después de que sudo npm install -g phantomjs-prebuilt

fue sin problemas

arr
fuente
2

La mejor manera de instalar nodejs es a través de NVM (Node Version Manager)

Eliminar versiones anteriores:

$ sudo apt-get purge node
$ sudo apt autoremove

También elimine todos los node_modules $ sudo rm -rf node_modulesen el directorio que contiene esta carpeta.

Nodo y Nodo son técnicamente la misma cosa. Solo cambió el nombre.

Primero instale o actualice nvm

correr como root

$ sudo su 

Entonces

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | golpetazo

O

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | golpetazo

Compruebe nvm a la ruta

$ source ~ / .profile
$ nvm ls-remote

Si obtiene un error con respecto a la lista, instale git.

$ sudo apt-get install git

Volver a ejecutar:

$ nvm ls-remote
O
$ sudo nvm ls-remote

$ nvm instala la versión que requieres 

Versión de comprobación

# nodo --version
nvm use version-you-require

CORTESÍA DE INFORMACIÓN:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps

CSEngineer
fuente
1

Había creado un enlace simbólico, pero aún no funcionaba.

Olvidé reiniciar mi terminal (mi conexión de masilla). Después de que funcionó sin el enlace simbólico :)

Jamie Hutber
fuente
1

Será útil para principiantes absolutos

Aunque, tiene la respuesta, solo quería señalar que el nodecomando (sin ningún parámetro) iniciará el nodo en modo REPL read-eval-print-loop para ejecutar código javascript sin procesar.

Otra forma de usar el nodecomando es proporcionándole un jsarchivo como parámetro. Así es como lo usamos principalmente.

Mohammed Zameer
fuente
0

Es opcional eliminar el nodo y los nodejs existentes, pero tiene que instalar alternativamente los últimos 7.x nodejs.

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

Solo use NVM (Node Version Manager) - https://github.com/creationix/nvm

Se ha convertido en el estándar para administrar Node.js.

Cuando necesitas una nueva versión:

nvm install NEW_VER
nvm use XXX

Si algo sale mal, siempre puedes volver con

nvm use OLD_VER
Dimitar Mazhlekov
fuente
0

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

  ~ which node
/usr/local/bin/node
  ~ node --version
v10.11.0
  ~ which npm
/usr/local/bin/npm
  ~ npm --version
6.4.1
Ashok R
fuente