Ubuntu 18.04
ubuntu 默认源里有nodejs,不过node和npm是分开的2个软件包npm依赖于node:
1 | sudo apt install npm -y |
执行:1
2node -v
npm -v
结果如下:
node 版本是 8.10.0
npm 版本是 3.5.2,版本有点老
执行 sudo npm i -g npm
更新一下npm版本试试
没报错,但执行 npm -v
后显示的还是 3.5.2 ,退出终端重新登录进去试试看:
执行 npm -v
后显示的是 6.11.1,说明成功地安装了最新的版本,可能是安装完后环境变量没有刷新
CentOS7
CentOS7 的epel源里有nodejs,
1 | yum install -y nodejs |
npm会被一并安装
npm版本倒是比ubuntu高了一点,但nodejs版本却低了2个大版本
更新一下版本试试
好家伙,直接报错了
然后 npm 消失了??不会连个回滚都没做吧,算了只能卸载重装了
1 | yum remove nodejs -y |
试试用 n 来装一下试试看,因为 n 装的nodejs里附带了npm
还好 n 是能正常装的
安装最新版本node:
1 | export NODE_MIRROR=https://npm.taobao.org/mirrors/node/ |
用 n 装的node和npm可执行文件是在 /usr/local/bin 下的,而 /usr/local/bin 目录的优先级是在 /usr/bin 之前的,也就是说如果两个目录中有名字一样的可执行文件,优先执行 /usr/local/bin 下的,这一点可以从 echo $PATH
看出:
出现这种情况很可能是环境变量没有刷新导致的,执行一下 source /etc/profile
或者重新进入一下终端就行了
然后就可以正常更新npm了
总结一下
Ubuntu 18.04 默认的源装的node版本比CentOS7的新,但2个系统的node版本都比较老,可以通过 n 来装最新以及稳定版的node。
2个系统默认的npm版本都比较老,但ubuntu默认的npm可以直接升级到最新的版本,而CentOS7直接升级的话会报错,而且npm的可执行文件还会被删掉,卸载重装可以恢复,要升级的话可以先用npm 装 n,然后用 n 装最新版的node,通过 n 装的node会附带对应的较新版本的 npm