El nombre del intérprete NodeJS ( node
) en Ubuntu ha sido renombrado nodejs
debido a un conflicto de nombre con otro paquete. Esto es lo que el archivo Léame. Debian dice:
El nombre ascendente del comando de intérprete Node.js es "nodo". En Debian, el comando del intérprete se ha cambiado a "nodejs".
Esto se hizo para evitar una colisión del espacio de nombres: otros comandos usan el mismo nombre en su flujo ascendente, como ax25-node del paquete "node".
Las secuencias de comandos que llaman a Node.js como un comando de shell deben cambiarse para utilizar el comando "nodejs".
Sin embargo, usar nodejs dificulta la instalación de paquetes usando npm
. La instalación del paquete falla con el siguiente error:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
¿Cómo hago para que npm entienda que nodejs ya está instalado en el sistema pero que el nombre del intérprete es diferente?
ln -s nodejs node
en/usr/bin
. Sin embargo, es una especie de truco.Respuestas:
TL; DR:
Antes que nada déjenme aclarar un poco la situación. En el verano de 2012, los mantenedores de Debian decidieron renombrar el ejecutable Node.js para evitar algún tipo de colisión de espacio de nombres con otro paquete. Fue una decisión muy difícil para el Comité Técnico de Debian, porque rompe la compatibilidad con versiones anteriores.
La siguiente es una cita del proyecto de resolución del Comité, publicado en la lista de correo de Debian :
El párrafo 2 es la solución real para el problema de OP. OP debería intentar instalar este paquete en lugar de hacer un enlace simbólico a mano. Aquí hay un enlace a este paquete en el sitio web del índice del paquete Debian .
Se puede instalar usando
sudo apt-get install nodejs-legacy
.No he encontrado ninguna información sobre la adopción de todo esto por parte de los desarrolladores de NPM, pero creo que el
npm
paquete se solucionará en algún momento y senodejs-legacy
convertirá en un verdadero legado.fuente
sudo apt-get install nodejs-legacy
Intente vincular nodo a nodojs. Primero descubra dónde está nodejs
Luego enlace de nodo a nodojs
Supongo que / usr / bin está en su ruta de ejecución. Luego puede probar escribiendo node o npm en su línea de comando, y todo debería funcionar ahora.
fuente
nodejs-legacy
paquete es más fácil./usr/bin
menos que lo seasdpkg
. La solución adecuada (si le gusta este enfoque de enlace simbólico/usr/local/bin
manual) es crear el enlace simbólico en el que está designado para las instalaciones y anulaciones locales. Cualquier cosa que haga manualmente/usr/bin
puede ser sobrescrita por el administrador de paquetes y / o lo confundirá.También puede instalar Nodejs usando NVM o Nodejs Version Manager Hay muchos beneficios al usar un administrador de versiones. Uno de ellos es que no tiene que preocuparse por este problema.
Instrucciones:
Una vez que se instalan los paquetes de requisitos previos, puede desplegar el script de instalación de nvm desde la página GitHub del proyecto. El número de versión puede ser diferente, pero en general, puede descargarlo e instalarlo con la siguiente sintaxis:
Esto descargará el script y lo ejecutará. Instalará el software en un subdirectorio de su directorio de inicio en
~/.nvm
. También agregará las líneas necesarias a su~/.profile
archivo para usar el archivo.Para obtener acceso a la funcionalidad nvm, deberá cerrar sesión y volver a iniciarla, o puede obtener el archivo ~ / .profile para que su sesión actual conozca los cambios:
Ahora que tiene instalado nvm, puede instalar versiones aisladas de Node.js.
Para conocer las versiones de Node.js que están disponibles para la instalación, puede escribir:
Como puede ver, la versión más nueva en el momento de escribir este artículo es v0.11.14. Puede instalar eso escribiendo:
Por lo general, nvm cambiará para usar la versión instalada más recientemente. Puede decirle explícitamente a nvm que use la versión que acabamos de descargar escribiendo:
Cuando instala Node.js usando nvm, el ejecutable se llama nodo. Puede ver la versión que está utilizando actualmente el shell escribiendo:
El tutorial completo se puede encontrar aquí.
fuente
usr/bin/node
. Así corriósudo ln -s /home/www/.nvm/v0.10.36/bin/node /usr/bin/node
Instalar
nvm
primero usando:Ejecutar comando
Ahora ejecute esto y esto mostrará todas las versiones instaladas u otros paquetes:
Los paquetes instalados estarán en verde. Instala la versión que quieras:
Verifique dónde no está instalado:
Verifique la versión actual:
fuente
Combinó la respuesta aceptada con
source ~/.profile
el comentario que se ha doblado y algunos comandos de limpieza anteriores. Lo más probable es que también necesites hacerlosudo apt-get install npm
después.fuente
para mí el problema fue resuelto por
fuente
Aquí hay otro enfoque que uso ya que me gusta n para cambiar fácilmente entre versiones de nodo.
En un nuevo sistema Ubuntu, primero instale el nodo 'sistema':
Luego instale n módulo globalmente:
Dado que el nodo del sistema se instaló primero (arriba), el sistema alternativo se puede utilizar para señalar limpiamente el nodo proporcionado por n . Primero asegúrese de que el sistema de alternativas no tenga nada para el nodo:
Luego agregue el nodo proporcionado por n :
A continuación, agregue el nodo proporcionado por el sistema (el que se instaló con curl):
Ahora seleccione el nodo provisto por n usando el menú interactivo (seleccione
/usr/local/bin/node
del menú presentado por el siguiente comando):Finalmente, dado que
/usr/local/bin
generalmente tiene una mayor precedencia en PATH que/usr/bin
, se debe crear el siguiente alias (ingrese en su .bashrc o .zshrc) si el nodo del sistema alternativo va a ser efectivo; de lo contrario, el nodo instalado con n en / usr / local / bin siempre tiene prioridad:Ahora puede cambiar fácilmente entre versiones de nodo con
n <desired node version number>
.fuente
En Linux Mint 17, probé ambas soluciones (crear un enlace simbólico o usar el
nodejs-legacy
paquete) sin éxito.Lo único que finalmente funcionó para mí fue usar el ppa de Chris Lea:
Este nodo instalado versión 10.37 y npm 1.4.28. Después de eso, podría instalar paquetes a nivel mundial.
fuente
Como otras personas ya mencionan, sugeriré no usar "sudo apt-get" para instalar el nodo o cualquier biblioteca de desarrollo. Puede descargar la versión requerida de https://nodejs.org/dist/v6.9.2/ y configurar su propio entorno.
Voy a recomendar herramientas como NVM y n , para gestionar la versión nodo. Es muy conveniente cambiar y trabajar con estos módulos. https://github.com/creationix/nvm https://github.com/tj/n
O escriba bash básico para descargar zip / tar, extraiga la carpeta de movimiento y cree un enlace suave. Siempre que necesite actualizar, simplemente apunte el viejo enlace suave a la nueva versión descargada. Como he creado para mí, puede consultar: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh
fuente
Solución simple desde aquí
Puede especificar la versión cambiando el valor de setup_x.x, por ejemplo a setup_5.x
fuente
Su sistema no puede detectar la ruta del nodo js binario.
1. cual nodo
2.Luego, enlace de nodo a nodojs
Supongo que / usr / bin está en su ruta de ejecución. Luego puede probar escribiendo node o npm en su línea de comando, y todo debería funcionar ahora.
fuente
Desinstale cualquier versión de nodo que tenga
instalar nvm (Node Version Manager) https://github.com/creationix/nvm
Ahora puede instalar cualquier versión del nodo que desee y cambiar entre las versiones.
fuente
nvm
, tenga en cuenta que el paquete nodejs-legacy es v0.10.25. (o al menos, eso es lo que vi cuando lo intenté).Lo arreglé desvinculando / usr / sbin / node (que está vinculado al paquete ax25-node), luego he creado un enlace a nodejs usando esto en la línea de comando
Debido a que un paquete como el karma no funciona con el nombre de nodejs, sin embargo, cambia la primera línea del script de karma de node a nodejs, pero prefiero resolver este problema de una vez por todas
fuente
Para mí, la solución fue eliminar los paquetes de nodo * y también los paquetes npm.
Luego una nueva instalación como:
fuente
sudo apt-get autoclean
hace "lo mismo" quesudo apt-get install autoclean
El problema no está en el instalador,
reemplace nodejs con node o cambie la ruta de / usr / bin / nodejs a / usr / bin / node
fuente
Este es el nodo que no está instalado correctamente, primero debe desinstalar el nodo y luego instalarlo nuevamente. Para instalar el nodo, esto puede ayudarlo http://array151.com/blog/nodejs-tutorial-and-set-up/
después de eso puedes instalar los paquetes fácilmente. Para instalar los paquetes, esto puede ayudarlo
http://array151.com/blog/npm-node-package-manager/
fuente
puede crear un
ln -s nodejs
nodo de enlace con la/usr/bin
esperanza de que esto resuelva su problema.fuente