Eva*_*oll 51 ubuntu fedora node.js
我安装了节点apt-get install nodejs.然后我安装了npm apt-get install npm.现在,当我尝试跑步时,express我得到了
$ express
/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
Eva*_*oll 106
Ubuntu中有两个包含类似名称的包,node和nodejs.
node 做这个,
Description-en:业余分组无线电节点程序.节点程序接受TCP/IP和分组无线电网络连接,并为用户提供一个接口,允许它们使用各种业余无线电协议建立到远程主机的网关连接.
nodejs 做这个,
Description-en:Node.js基于事件的服务器端javascript引擎Node.js在设计上类似于Ruby的Event Machine或Python的Twisted等系统.它使事件模型更进一步 - 它将事件循环呈现为语言结构而不是库.Node.js捆绑了几个有用的库来处理服务器任务:系统,事件,标准I/O,模块,定时器,子进程,POSIX,HTTP,多部分解析,TCP,DNS,断言,路径,URL,查询字符串.
Fedora也遵循类似的包命名方案.因此,必须将二进制文件nodejs重命名为nodejs原始文件node.但是,这在技术上并不是犹太人的:大多数nodejs程序(以及用npm安装的库)都假设节点二进制文件是node.如果你想绕过这个,最简单的方法就是将两者合二为一.如果你采取这种方式,不要安装node处理业余数据包无线电的东西.
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)
或者,在节点的情况下,我建议使用n而不是安装node.只需安装npm(将安装节点),然后删除npm,然后告诉apt清理它.要做到这一点,只需运行
sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo apt-get --purge remove npm
sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)
还有其他二进制发行版管理器,甚至可以使用shell脚本,nvm但我个人更喜欢n.想象一下n只适用于一件事:它安装的节点二进制文件/usr/local/bin.
为什么删除npm?不是.apt-get --purge remove可仅过移除由包管理器安装的东西.n latest在包管理器之外工作.如果你这样做,有两个npms,
apt-get.n latest.拥有发行版的旧版本没有意义.而且,更糟糕的是,如果该版本有效,它可能会安装到不同的位置,并在其中进行Debian修改,假定Debian安装目录.最好使用/或两者兼而有之.
Ser*_*eev 21
你应该安装nodejs-legacy软件包,它有一个从/ usr/bin/node到/ usr/bin/nodejs的链接
$ sudo apt-get install nodejs-legacy
| 归档时间: |
|
| 查看次数: |
25554 次 |
| 最近记录: |