node.js - run - Express.js: No dicho archivo o directorio
node js run express app (5)
Instalé el nodo con apt-get install nodejs
. Luego instalé npm con apt-get install npm
. Ahora cuando trato de ejecutar express
consigo
$ express
/usr/bin/env: node: No such file or directory
¿Cómo resuelvo este error?
En mi caso fue porque en mi PATH
entorno PATH
, tuve "~ / progs / node / bin /" y el "~" no parece ser resuelto por env
... reemplazándolo con la ruta real completa ("/ home / myuser / node / bin ") resolvió mi problema.
Esta solución
export PATH="$HOME/opt/nodejs/bin:$PATH"
resolvió este problema para mí (debería funcionar suponiendo que la variable $ HOME esté configurada correctamente). También me permite evitar la codificación difícil de la ruta a mi directorio de inicio (por ejemplo, así puedo reutilizar mi .bash_profile con diferentes cuentas / servidores si es necesario)
Hay dos paquetes en Ubuntu que tienen nombres similares, node y nodejs .
node
hace esto,
Description-en: Programa Amateur Packet Radio Node. El programa de nodo acepta TCP / IP y conexiones de red de paquetes de radio y presenta a los usuarios una interfaz que les permite establecer conexiones de puerta de enlace a hosts remotos utilizando una variedad de protocolos de radioaficionados.
nodejs
hace esto,
Description-es: Node.js, el motor de javascript basado en eventos de Node.js es similar en diseño e influenciado por sistemas como Ruby''s Event Machine o Python''s Twisted. Lleva el modelo de eventos un poco más allá: presenta el bucle de eventos como una construcción de lenguaje en lugar de una biblioteca. Node.js se incluye con varias bibliotecas útiles para manejar tareas del servidor: Sistema, Eventos, E / S estándar, Módulos, Temporizadores, Procesos secundarios, POSIX, HTTP, Análisis de partes múltiples, TCP, DNS, Assert, Ruta, URL, Cadenas de consulta.
Fedora también sigue un esquema de nombres de paquete similar. Debido a esto, el binario en nodejs
tuvo que ser renombrado como nodejs
del node
original. Sin embargo, esto no es técnicamente kosher: y la mayoría de los programas nodejs (y las bibliotecas instaladas con npm) suponen que el nodo binario es un node
. Si quieres evitar esto, la manera más fácil es unir las dos cosas. Si toma esta ruta, no instale el paquete de node
que maneja las cosas de Amateur Packet Radio.
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
Alternativamente, en el caso de un nodo, sugiero usar n
y no instalar el node
. Simplemente instale npm (que instalará el nodo), luego elimine npm, luego diga apt para que lo limpie. Para hacer esto, simplemente ejecuta
sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo apt-get --purge remove npm
sudo apt-get autoremove
Hay otros administradores binarios de distribución que incluso trabajan desde un script de shell como nvm
pero yo personalmente prefiero n
. Piense en n
como un apt para una sola cosa: el nodo binario que instala en /usr/local/bin
.
¿Por qué están eliminando npm? No eran. apt-get --purge remove
solo puede eliminar cosas instaladas por el administrador de paquetes. n latest
obras fuera del administrador de paquetes. Hay dos npms si haces esto,
- versión instalada por la distribución (Debian / Ubuntu) usando
apt-get
. - versión instalada por
n latest
.
No tiene sentido tener la versión anterior de la distribución. Y, lo que es peor, si esa versión funciona, puede potencialmente instalarse en una ubicación diferente y tener modificaciones de Debian que asuman los directorios de instalación de Debian. Es mejor utilizar cualquiera de los dos, pero no ambos.
debe instalar el paquete nodejs-legacy que tiene un enlace de / usr / bin / node a / usr / bin / nodejs
$ sudo apt-get install nodejs-legacy
haz esto en cmd
sudo apt-get install nodejs-legacy
chmod your folder 700 (optional)