Express.js:没有这样的文件或目录(Express.js: No Such file or

2019-07-20 01:09发布

我安装了节点apt-get install nodejs 。 然后我安装了新公共管理apt-get install npm 。 现在,当我尝试运行express ,我得到

$ express 
/usr/bin/env: node: No such file or directory

我该如何解决这个问题?

Answer 1:

有两个包在Ubuntu具有类似名称, 节点的NodeJS。

node做到这一点,

说明恩:业余分组无线节点计划。 节点程序接受TCP / IP和分组无线网络连接,并呈现用户提供允许他们做出使用各种业余无线电协议到远程主机网关的连接的接口。

nodejs做到这一点,

说明恩:Node.js的基于事件的服务器端JavaScript引擎的Node.js在设计上相似,由像Ruby的事件机器或Python的扭曲系统的影响。 它采用事件模型远一点 - 它提出事件循环作为一种语言结构,而不是作为一个库。 Node.js的捆绑了一些有用的库来处理服务器任务:系统,活动,标准I / O,模块,定时器,子进程,POSIX,HTTP,多部分解析,TCP,DNS,断言,路径,URL,查询字符串。

Fedora也遵循类似的包命名方案。 正因为如此,在二进制nodejs不得不被重新命名为nodejs从原来的node 。 然而,这不是技术上犹太:和(与故宫安装和库)大部分项目的NodeJS假设节点二进制文件node 。 如果你想解决这个问题最简单的办法就是符号链接两人在一起。 如果你走这条路,不要安装node包,它处理的业余无线分组东西。

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

另外,在节点的情况下,我建议使用n而不是安装node 。 只要安装NPM(这将安装节点),然后取出NPM,然后告诉易清理。 要做到这一点,只需运行

sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo apt-get --purge remove npm
sudo apt-get autoremove

还有其他二进制发行版的经理,即使从一个shell脚本类似工作nvm ,但我个人更喜欢n 。 想想n像一个容易的一两件事:它安装到节点的二进制/usr/local/bin

为什么要删除NPM? 不是。 apt-get --purge remove永远只能移除由包管理器安装的东西。 n latest包管理器之外的作品。 有两个国家防范机制,如果你这样做,

  1. 通过使用该发行版(于Debian / Ubuntu)安装的版本apt-get
  2. 通过安装的版本n latest

在具有发行版的旧版本没有任何意义。 而且,更糟的是,如果该版本的作品它可能安装到不同的位置,并在它的Debian修饰,其承担的Debian安装目录。 这是更好地或者使用/或而不是两个。



Answer 2:

您应该安装具有从/ usr / bin中/节点到/ usr / bin中/一的NodeJS链接的NodeJS遗留包

$ sudo apt-get install nodejs-legacy



Answer 3:

在我的情况,这是因为在我的PATH环境变量中,我有“〜/ progs的/节点/斌/”和“〜”似乎并没有被解决env ......与真正的完整路径替换它(“/家/ myuser的/节点/箱“)解决我的问题。



Answer 4:

该解决方案

export PATH="$HOME/opt/nodejs/bin:$PATH"

解决这个问题对我来说(它应该工作假设$ HOME变量设置正确)。 这也让我避免硬编码的路径,我的主目录(例如,所以我可以重用我与不同的帐户的.bash_profile /服务器,如果我需要)



Answer 5:

在cmd中做到这一点

sudo apt-get install nodejs-legacy
chmod your folder 700 (optional)


文章来源: Express.js: No Such file or directory