Node.js是基于Chrome的V8引擎构建的跨平台JavaScript运行时环境,旨在在服务器端执行JavaScript代码。
它通常用于构建后端应用程序,但作为全栈和前端流行解决方案。npm是Node.js默认的包管理器,也是世界上最大的软件库。
我们将探讨在CentOS 7安装Node.js和npm的两种不同方式。CentOS 7的软件仓库包含Node.JS。版本是Node.JS 10。
如果你需要最新版本,你只能通过以下两种方式安装Node.JS。
第一种是从NodeSource安装Node.JS。如果你需要使用yum命令管理Node.JS的版本与更新,请使用此仓库安装Node.JS。
当前NodeSource支持Node.js v18.x
,v16.x
,v14.x
和v12.x
。
第二种方式是使用nvm
Node版本管理器安装Node.JS。nvm
允许您在同一台计算机上安装多个Node.JS版本。
如果您是Node.JS开发者,那么这是安装Node.js的首选方式。选择适合您的环境的安装方法。如果不确定要安装哪个Node.js版本,请查阅要部署的应用程序的文档。
默认情况下在CentOS 7安装Node.JS,不会安装构建编译C/C++源码的构建工具,例如GCC/G++和一些系统的标准库头文件等。
我们建议你安装C/C++开发工具在你CentOS 7系统,如你不知道如何安装C/C++开发工具,参考我们的教程如何在CentOS 7安装GCC开发工具。
NodeSource 安装Node.js
NodeSource是一家致力于提供企业级Node.js支持的公司。它维护一个包含多个Node.js版本的yum存储库。
启用NodeSource存储库需要你当前登录的用户具有sudo权限或者以root用户登录。如果当前登录的用户没有sudo权限或者root权限。
CentOS 7将提示你myfreax is not in the sudoers file. This incident will be reported将提示你用户不在sudoers文件中。你需要以root登录。
以root用户登录到操作系统通常是不建议的方式,我们建议你为当前的普通用户添加sudo权限。你可参考我们教程如何在CentOS创建sudo用户。
首先开启NodeSource仓库,然后yum命令安装Node.JS。在撰写本文时,LTS版本是18.x。
在编写本教程时由于NodeSource还没支持在CentOS 7安装Node.JS 18。我们将安装Node.JS版本16.x。运行curl命令,下载并运行NodeSource安装脚本。
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
该脚本会将NodeSource签名密钥添加到您的系统,创建yum储存库文件,安装所有必需的软件包,并刷新yum缓存。
如果您需要另一个Node.js版本, 比如14.x
,将setup_16.x
更改为setup_14.x
。
一旦启用NodeSource仓库,请运行命令sudo yum install -y nodejs
安装Node.js和npm。
Node.JS软件包同时包含node
和npm
二进制文件。可以运行命令node --version
,npm --version
打印其版本来验证Node.js和npm是否已成功安装。
如果你使用的yarn不是npm,可以运行命令sudo corepack enable yarn
安装yarn。然后运行命令yarn -v
打印yarn版本号。
sudo yum install -y nodejs
corepack enable yarn npm
node --version
npm --version
yarn -v
v14.2.0
6.14.4
NVM 安装Node.js和npm
NVM是Node.JS版本管理器是一个bash脚本,可让您基于用户管理多个Node.js版本。 借助NVM,您可以安装,卸载,测试任何Node.js版本。
这种方式即使你当前登录的用户不具有sudo权限或者不使用root登录都可安装。因为此安装Node.JS的方式并不是全局的安装。
使用NVM安装Node.JS仅在你安装的当前用户可用,如果切换到其它用户运行Node,CentOS提示node command not found也就是没有找到Node.JS。
如果你需要使用最新版本的nvm版本管理器请访问nvm GitHub仓库页面并复制安装脚本的curl
命令。
然后ctrl+alt+t
打开终端粘帖并运行复制的脚本,下载并安装nvm
,以下命令将安装nvm的v0.39.1版本。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
请勿使用sudo
运行此安装脚本,因为它将为root用户安装nvm
。该脚本会将nvm仓库从Github克隆到用户的家目录中~/.nvm
。
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -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
如上输出所示,您应该关闭终端,然后重新打开终端,或者将nvm
命令添加到当前会话的PATH环境变量,运行命令export PATH=$PATH:$HOME/.nvm/nvm.sh
。
当nvm脚本添加到您的PATH
中环境变量后,请运行命令nvm --version
验证nvm
是否已正确安装,在我们的教程中nvm的版本是v0.39.1。
当安装完成后,你可使用nvm list-remote
获取可以用nvm
安装的Node.js版本列表,命令nvm install node
将会安装Node.js的最新版本。
当完成安装Node.JS后,你需要运行命令corepack enable npm
安装npm,命令corepack enable yarn
将会安装yarn。
每当一个版本的Node.JS被安装后,nvm将会切换到刚安装的版本,你通过命令node --version
打印Node.js版本进行安装验证。
nvm install --lts
将会安装Node.JS LTS版本,并且是最后发行的LTS版本。nvm ls
命令列出已安装的Node.js版本。
nvm list-remote
nvm install node #latest
nvm install --lts #LTS
node --version
corepack enable npm
corepack enable yarn
npm --version
yarn --version
nvm ls
带有右箭头的条目是当前Shell会话中使用的Node.js版本,默认版本是打开新的shell会话时将激活的版本。
如果要更改当前激活的版本,请使用nvm use
命令后面跟版本号,例如命令nvm use 16.16.0
将会切换到Node.JS的16.16.0
版本。
要更改默认的Node.js版本,请使用nvm alias default
命令后面跟版本号,例如命令nvm nvm alias default 12.16.3
将会切换到Node.JS的12.16.3
版本,并设置为默认。
结论
我们向您展示了两种在CentOS 7安装Node.js和npm的方法。 您选择的方法取决于您的要求和偏好。 尽管从CentOS或NodeSource存储库安装打包版本更加容易。
但是nvm方法为您提供了更大的灵活性,可以基于用户添加和删除不同的Node.js版本。如有任何疑问,请随时发表评论。