首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js冲突: /sbin/node vs /usr/bin/node

node.js冲突: /sbin/node vs /usr/bin/node
EN

Ask Ubuntu用户
提问于 2013-01-03 14:30:55
回答 4查看 48.5K关注 0票数 34

我有两台Ubuntu12.10机器:机器A是VMWare VM,机器B是和旧的宏碁笔记本电脑。在这两台机器上,我使用apt-get安装了节点。但是,机器A以/usr/bin/node的形式安装主二进制文件,以/usr/bin/nodejs的形式安装机器B。以下是我观察到的一些行为:

  1. 这两台机器响应于/usr/bin/node命令返回which node。但是,在机器B上没有这样的文件。
  2. 发出命令node适用于机器A,而不是B。在B上,我不得不使用nodejs
  3. 在B上,有一个名为/sbin/node的二进制文件,A没有它。

在这两台机器上进行开发时,这些行为都会导致不一致问题。现在,我将B上的二进制文件重命名为这样:

代码语言:javascript
复制
sudo mv /sbin/node /sbin/node-sbin
sudo ln -s /usr/bin/nodejs /usr/bin/node

是否有办法真正解决这个问题,以便将节点安装为/usr/bin/node而不是/usr/bin/nodejs

EN

回答 4

Ask Ubuntu用户

回答已采纳

发布于 2014-03-29 20:12:56

在Ubuntu 13.10上,上面的所有答案对我都不起作用。当我安装nodejs-旧式时,它终于起作用了。

代码语言:javascript
复制
sudo apt-get install nodejs-legacy

这为我正确地提供了/usr/bin/node,因此可以使用nodemon

票数 16
EN

Ask Ubuntu用户

发布于 2013-07-15 13:16:37

更新:下面修改的使用nodejs-legacy包的说明。(有关节点遗产的更多信息)

尝试完全删除冲突的节点包:

代码语言:javascript
复制
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

sudo apt-get install nodejs-legacy

# Confirm it worked
node --version       # v0.10.13
ls -la `which node`  # ... /usr/bin/node -> /etc/alternatives/node

当我无意中安装了非node.js node包时,我就遇到了这种情况。虽然我在安装正确的apt-get remove node包之前做了nodejs,但我想--purge参数是必需的。

背景信息

与节点包(业余分组无线节点程序)存在命名冲突,nodejs二进制文件已从节点重命名为nodejs。您需要将/usr/bin/node链接到/usr/bin/nodejs,或者卸载业余分组无线节点程序以避免这种冲突。

票数 37
EN

Ask Ubuntu用户

发布于 2013-03-21 17:33:04

对我来说不幸的是,创建一个符号链接不起作用。但对我有效的是创造了一个化名。在~/.bashrc~/.bash_aliases中(如果~/.bashrc加载此文件),只需添加以下一行:

代码语言:javascript
复制
alias node="nodejs"

通过在控制台中键入bash重新启动bash会话,您的别名现在就可以工作了。

票数 12
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/235655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档