debian系linux使用的包管理工具是apt-get或升级版的aptitude。node.js相关的有2个包:nodejs和nodejs-legacy。为什么会有两个?

首先,nodejs安装完成后,大部分系统的默认的运行名称为“node”,于是很多nodejs的脚本文件都会以“node”作为运行名,如果没有找到,就无法执行。而debian上有个老软件包叫“node”,这与nodejs的默认运行名称“node”重名了,所以在debian系linux上,安装nodejs包后的默认运行名是“nodejs”,这会导致很多npm包里的软件找不到“node”。

解决方法1,就是安装nodejs-legacy,不过要把以前的nodejs和其他相关删除掉。

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
# 确认能用
node --version       # v0.10.13
ls -la `which node`  # ... /usr/bin/node -> /etc/alternatives/node

解决方法2,仍然使用nodejs包,但是建立一个硬链接,目前测试暂未发现问题。

cd /usr/bin
sudo ln nodejs node

标签: none 阅读量: 1256

添加新评论