Skip to content

linux 安装nodejs环境

官方推荐采用nvm来安装nodejs:https://nodejs.org/en/download/package-manager

nvm方式安装

bash
# installs NVM (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# download and install Node.js
nvm install 20

# verifies the right Node.js version is in the environment
node -v # should print `v20.12.0`

# verifies the right NPM version is in the environment
npm -v # should print `10.5.0`

执行第一步的时候会报“拒绝连接的错误”。

git下载

从git上下载最新nvm包:

bash
# 1、 在对应目录中下载nvm对应版本压缩包
cd ~
wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.7.tar.gz

# 2、 创建.nvm文件夹并解压至nvm目录
mkdir ~/.nvm
tar -zxvf v0.39.7.tar.gz -C ~/.nvm/

# 3、编辑配置环境 ~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc 任一都行
vim ~/.bashrc

# 4、在~/.bashrc的末尾,添加如下语句:
export NVM_DIR="$HOME/.nvm/nvm-0.39.7"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# 5、重新加载配置
 source ~/.bashrc

# 6、查看版本
[root@xxx ~]# nvm --version
0.39.7

# download and install Node.js
nvm install 20

# verifies the right Node.js version is in the environment
node -v # should print `v20.12.0`

# verifies the right NPM version is in the environment
npm -v # should print `10.5.0`

nvm

Node Version Manager(NVM) 是一种用于管理多个主动节点.js版本的工具,可以解决多个项目对不同nodejs版本的依赖问题。

nvm 常用命令

bash
nvm off                     // 禁用node.js版本管理(不卸载任何东西)
nvm on                      // 启用node.js版本管理
nvm install <version>       // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version>     // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm ls                      // 显示所有安装的node.js版本
nvm ls-remote               // 显示远程可以安装的node.js版本
nvm list available          // 显示可以安装的所有node.js的版本
nvm use <version>           // 切换到使用指定的nodejs版本
nvm v                       // 显示nvm版本
nvm install stable          // 安装最新稳定版

版本适配问题

目前centos 只支持16.2版本,使用18以上的版本会报错GLIBC错误

shell
[root@l7 ~]# node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' 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 `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)

从nodejs18 开始不再支持centos 7 ,因为glibc不兼容

https://github.com/nodejs/node/issues/43246

解决:网上有相关解决方案,比较复杂。如果想要跟高级的版本,建议直接采用docker 安装nodejs镜像

yum安装

也可以采用yum 来安装nodejs

先确认系统是否已经安装了epel-release包(EPEL是企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。)

shell
# 查看是否安装EPEL
yum info epel-release
# 如未安装,安装EPEL
yum install epel-release
# 安装nodejs
yum install nodejs
# 安装npm
yum install npm
# 查看版本
nodejs -v

修改ssh端口

shell
# 编辑ssh配置文件
vim /etc/ssh/sshd_config
# 找到Port 22 修改为自己要的端口如:77
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# 重启sshd
systemctl restart sshd

# 测试端口
ssh localhost -p 77