(2026-05-01实战ok):

cd /etc/nodejs

wget https://nodejs.org/dist/v17.0.0/node-v17.0.0-linux-x64.tar.gz

tar -zxvf node-v17.0.0-linux-x64.tar.gz

cd node-v17.0.0-linux-x64/

cd bin

ln -s `pwd`/node /usr/local/bin/node

ln -s `pwd`/npm /usr/local/bin/npm

ln -s `pwd`/npx /usr/local/bin/npx

  1. 注意红色部分不能是/root,如果是/root会出现这样的现象:在root用户下能正常使用,非root用户使用不了,在非root用户下ls -all /usr/local/bin会发现创建的软连接飘红。不一定非要用/etc目录,哪些目录能用这样判断:非root用户下ls -all 目录,比如ls -all /root会报权限问题,而ls -all /etc可以,凡是像ls -all /root一样的就是不能用的。我是参考系统自带的java是怎么安装的摸索出来的,你实在搞不定非root用户飘红的问题,就看看系统自带的哪些软件是怎么安装的,你会发现没有一个是安装在/root下的。
  2. CentOS7只支持17版,高于17版用了更高版本的libc。

通过以上步骤,node算是安装好了,这时你可能会纠结NODE_HOME,没配置NODE_HOME貌似也可以呀,那到底要不要配置呢?最好配置它,以在上面安装好的node17中安装TypeScript为例:

# 以下操作在root用户下即可,任何目录都可以。

npm install -g typescript

在/etc/nodejs/node-v17.0.0-linux-x64/bin目录下多了tsc和tsserver,说明安装好了,但which tsc或者tsc -v都报错。这就是有没有NODE_HOME的区别了,假如配置了NODE_HOME,安装好后就可以用了,现在报错就是没有NODE_HOME,因为PATH里面没有NODE_HOME/bin,所以找不到tsc。当然可以类似上面的做法,执行

ln -s /etc/nodejs/node-v17.0.0-linux-x64/bin/tsc /usr/local/bin/tsc

问题解决了,所以前面说“最好配置NODE_HOME”,没有NODE_HOME照样能解决问题,每次安装新东西都要这样做一遍,如果配置了NODE_HOME就没怎么麻烦了。配置NODE_HOME:

vim /etc/profile

在‘export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL“行之前增加

NODE_HOME=/etc/nodejs/node-v17.0.0-linux-x64
PATH=${PATH}:${NODE_HOME}/bin

有了NODE_HOME,前面建立的哪些软连接都可以删了。

最后一个问题:为什么在/etc/profile中增加,在别的地方行吗?在/etc/profile中增加只增加一次,并且所有用户都可用。在别的地方增加也可以,但每个想用node的用户都得单独增加。

更多推荐