我有两台 Ubuntu 12.10 机器:机器 A 是 VMWare VM,机器 B 是旧的 Acer 笔记本电脑。在两台机器上,我都使用 apt-get 安装了节点。但是,机器 A 将主二进制文件安装为/usr/bin/node,机器 B 安装为/usr/bin/nodejs. 以下是我观察到的一些行为:
/usr/bin/node都响应which node命令返回。但是,机器 B 上没有这样的文件。node适用于机器 A,而不是 B。在 B 上,我必须nodejs改用。在两台机器上开发时,这些行为会导致不一致问题。现在,我通过重命名 B 上的二进制文件来解决这个问题:
sudo mv /sbin/node /sbin/node-sbin
sudo ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)
有没有办法真正解决这个问题,以便该节点将安装为/usr/bin/node而不是/usr/bin/nodejs?
Lef*_*ium 36
更新:修改了下面的说明以使用该nodejs-legacy包。(有关 node-legacy 的更多信息)
尝试完全删除冲突的节点包:
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
Run Code Online (Sandbox Code Playgroud)
当我无意中安装了非 node.jsnode包时,这发生在我身上。虽然我apt-get remove node在安装正确的nodejs包之前就做了,但我猜这个--purge参数是必需的。
背景资料:
与节点包(Amateur Packet Radio Node Program)存在命名冲突,nodejs二进制已经从node重命名为nodejs。您需要将 /usr/bin/node 符号链接到 /usr/bin/nodejs 或者您可以卸载 Amateur Packet Radio Node Program 以避免这种冲突。
小智 16
在 Ubuntu 13.10 上,上述所有答案对我都不起作用。当我安装 nodejs-legacy 时,它终于奏效了
sudo apt-get install nodejs-legacy
Run Code Online (Sandbox Code Playgroud)
这正确地/usr/bin/node为我提供,以便nodemon可以使用例如。
Aus*_*ust 12
对我来说不幸的是,创建符号链接不起作用。对我有用的是创建别名。在~/.bashrc或~/.bash_aliases(如果~/.bashrc加载此文件)中,只需添加以下行:
alias node="nodejs"
Run Code Online (Sandbox Code Playgroud)
通过bash在控制台中键入来重新启动 bash 会话,您的别名现在将起作用。
| 归档时间: |
|
| 查看次数: |
46598 次 |
| 最近记录: |