CentOS 7下完美安装最新版Node.JS 并和NVM并存
CentOS 7下安装NodeJS通常有一下3种方法
- 方式一:通过epel库安装
- 方式二:安装NVM,可以方便切换NodeJS版本
- 方式三:从源代码编译安装
- 方式四:从官方下载编译后的包后手工安装(没试过,想来和方式二存在同样的问题,可以安装但无法工作)
方式一虽然可以安装但仍然没有最新版本
方式二,自由切换版本看起来很美,也可以安装上最新的版本,但是当用Node -v的时候会报错,原因是系统内核太老不支持
[root@local-dev ~]# node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
方式三是可以顺利安装最新版而且正常运行(编译花了我2个小时。。。),但是又没有NVM自由切换的好事了,有没可能方式三编译出来的结果和NVM放在一起呢共同合作呢?下面就是完美的解决方案:
#编译安装完后安装路径在"/usr/local/bin/node",对照nvm的路径(如"/root/.nvm/versions/node/v20.10.0")
#把对应文件copy过去覆盖则可以和方式二的NVM并存,并可通过NVM切换node版本
rm -rf /root/.nvm/versions/node/v20.10.0/bin
cp -rfi /usr/local/bin /root/.nvm/versions/node/v20.10.0/bin
rm -rf /root/.nvm/versions/node/v20.10.0/lib
cp -rfi /usr/local/lib /root/.nvm/versions/node/v20.10.0/lib
rm -rf /root/.nvm/versions/node/v20.10.0/include
cp -rfi /usr/local/include /root/.nvm/versions/node/v20.10.0/include
rm -rf /root/.nvm/versions/node/v20.10.0/share
mkdir /root/.nvm/versions/node/v20.10.0/share
cp -rfi /usr/local/share/doc /root/.nvm/versions/node/v20.10.0/share/doc
cp -rfi /usr/local/share/man /root/.nvm/versions/node/v20.10.0/share/man