node.js - update - No se pueden instalar NodeJs:/usr/bin/env: nodo: no existe tal archivo o directorio
install node js linux red hat (15)
Creo que deberías actualizar la última versión del nodo
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Estoy intentando instalar nodeJs en mi Ubuntu 14.04 para poder usar GruntJs.
He leído sobre la forma diferente de hacerlo de Ubuntu ( issues? ), Así que esto es lo que he hecho para instalarlo:
sudo apt-get install npm
sudo npm install -g grunt-cli
Escribiendo gruñido después de que tengo el error:
/usr/bin/env: node: No such file or directory
Así que, he intentado:
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get update
Y volviendo a intentarlo, y aún recibiendo el error, lo he intentado:
sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/
sudo apt-get install -y nodejs
Tengo este mensaje:
nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
Intenté una limpieza por si acaso:
sudo apt-get autoremove
Pero no, el error sigue ahí: cuando escribo grunt todavía obtengo /usr/bin/env: node: No such file or directory
existe /usr/bin/env: node: No such file or directory
¿Qué tengo que hacer?
Cuando estaba usando Gulp recibí este error.
~$ gulp
/ usr / bin / env: ''nodo'': no existe tal archivo o directorio
Esto se eliminó ejecutando el siguiente comando que debe tener en cuenta que el directorio / usr / bin tiene todos los permisos.
~$ ln -s /usr/bin/nodejs /usr/bin/node
esto funciona para mi ..
Dependiendo de cómo instaló su nodo, la mayoría de las veces podría no estar en / usr / bin /, en mi caso fue que usé nvm para instalar, así que mi nodo estaba en ./nvm/versions.
Usando este comando, which node
encontré en la ruta, pero para facilitar el trabajo, puede ejecutar este comando.
nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node
el comando anterior obtendrá la ubicación de su nodo y creará un enlace para usted.
Descubrí que esto suele ser un error de denominación errónea, si instala desde un administrador de paquetes, a su bin se le puede llamar nodejs, así que solo necesita un enlace simbólico.
ln -s /usr/bin/nodejs /usr/bin/node
El problema no es con la versión de nodo. En cambio, es la forma en que NodeJS se instala de forma predeterminada en Ubuntu. Al ejecutar una aplicación Node en Ubuntu, debe ejecutar nodejs somethign.js
lugar de node something.js
Así que el nombre de la aplicación llamado en el terminal es nodejs
y no node
. Esta es la razón por la que se necesita un enlace simbólico para simplemente reenviar todos los comandos recibidos como node
a nodejs
.
ln -s /usr/bin/nodejs /usr/bin/node
En mi caso, la instalación de nodejs-legacy solucionó el problema.
sudo apt-get install nodejs-legacy
Encontré la respuesta. Por si acaso ayuda a alguien, lo publico aquí:
Al hacer un enlace simbólico se resuelve el problema: ln -s /usr/bin/nodejs /usr/bin/node
(Mis agradecimientos y +1 votos a bodokaiser ).
NOTA: Creo que esta publicación no es un duplicado exacto, porque esa publicación fue en cierto modo una pregunta de browserify.
Hay dos soluciones para esto:
a) Establezca su variable PATH para incluir "/ usr / local / bin"
export PATH="$PATH:/usr/local/bin"
b) Cree un enlace simbólico a "/ usr / bin" que ya está en su RUTA
ln -s /usr/bin/nodejs /usr/bin/node
Espero que ayude.
Mientras que ln -s
es la solución obvia más fácil, una explicación:
Debido a un conflicto con otro paquete, el ejecutable de los repositorios de Ubuntu se llama nodejs en lugar de node. Tenga esto en cuenta mientras ejecuta el software.
Este consejo aparece cuando se instala sudo apt-get install nodejs
.
Así que alguna otra herramienta conocida (no sé lo que hace. Aunque se conoce en los repositorios de ubuntu, no se instala de forma predeterminada en 16.04) ocupa ese espacio de nombres.
Hubiera sido bueno, si Ubuntu hubiera ofrecido un consejo sobre cómo solucionar esto ''limpiamente'', si no fuera por hacer lo que de otra manera haría el paquete. (una colisión sigue siendo una colisión ... si + cuando ocurriera)
Para mi caso el enlace NO funcionó como sigue
ln -s / usr / bin / nodejs / usr / bin / node
Pero puede abrir / usr / local / bin / lessc como root y cambiar la primera línea de node a nodejs.
- #! / usr / bin / env nodo
+ #! / usr / bin / env nodejs
Si puede acceder al nodo en el terminal ubuntu usando el comando nodejs, entonces este problema puede resolverse simplemente usando -creando un enlace simbólico de nodejs y node usando
ln -s /usr/bin/nodejs /usr/bin/node
y esto puede resolver el problema
Si ya tiene nodejs instalado (verifique con which nodejs
) y no desea instalar otro paquete, puede, como root:
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
Simplemente cambie el nombre del comando o del archivo ln -s /usr/bin/nodejs /usr/bin/node
con este comando
Solo haz
$ sudo apt-get install nodejs-legacy
Y empezará a funcionar.
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>