更新时间:2023-06-18 09:31:38浏览次数:962+次
本文介绍如何在Rocky 8/AlmaLinux 8系统上安装和使用Node.js 20 LTS的方法,包括介绍设置默认Node.JS版本、运行Node.JS应用程序及将PM2用于Node.JS应用程序。
1、在Rocky 8/AlmaLinux 8上安装Node.js 20 LTS
有两种安装方法,它们是使用YUM存储库及使用NVM,下面分别介绍。
选项1:使用YUM安装Node.js 20 LTS
Node.js 20 LTS可以使用YUM存储库安装在Rocky 8/AlmaLinux 8上。这涉及到将存储库添加到系统中,因为默认的repos只提供Node.js 10。下面,请执行以下操作:
$ dnf provides nodejs
ocky Linux 8 - AppStream 16 MB/s | 9.1 MB 00:00
Rocky Linux 8 - BaseOS 6.9 MB/s | 2.8 MB 00:00
Rocky Linux 8 - Extras 43 kB/s | 13 kB 00:00
nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64: JavaScript runtime
Repo: appstream
Matched from:
Provide: nodejs = 1:10.24.0-1.module+el8.3.0+101+f84c7154
要想能够安装Node.js 20 LTS,请添加存储库:
curl -sL https://rpm.nodesource.com/setup_20.x | sudo -E bash -
删除任何NodeJS安装:
sudo dnf remove nodejs -y
Node.js 20 LTS可以使用以下命令安装在Rocky 8/AlmaLinux 8上:
sudo dnf install nodejs
依赖关系树:
Transaction Summary
Install 1 Package
Total download size: 36 M
Installed size: 104 M
Is this ok [y/N]: y
安装后,验证:
$ node -v
v20.2.0
您也可以检查NPM版本:
$ npm -v
9.6.6
选项2:使用NVM安装Node.js 20 LTS
Node版本管理,通常称为NVM,也可以用于安装所需版本的Node.js。首先,确保将其添加到您的系统中:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
获取您的个人资料:
source ~/.bashrc
此外,启用NVM的TAB completion:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
验证NVM安装:
$ nvm --version
0.39.3
然后,您可以使用以下命令安装Node.JS 20 LTS:
$ nvm install 20
Downloading and installing node v20.2.0
Downloading https://nodejs.org/dist/v20.2.0/node-v20.2.0-linux-x64.tar.xz
###################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.2.0 (npm v9.6.6)
Creating default alias: default -> 20 (-> v20.2.0)
要安装最新的LTS版本,请使用:
nvm install --lts
验证安装:
$ node --version
v20.2.0
2、设置默认Node.JS版本
NVM还可以用于管理系统上安装的多个Node.JS版本。要列出已安装和可用的版本,请使用:
$ nvm ls
要更改为另一个所需的Node.JS版本,例如Node.JS 16,请使用:
$ nvm use 16
Now using node v16.20.0 (npm v8.19.4)
要将其设置为默认版本,请使用:
$ nvm alias default 16
default -> 16 (-> v16.20.0)
现在验证更改:
$ node -v
v16.20.0
3、运行Node.JS应用程序
为了测试Node.JS 20 LTS是否正常工作,我们可以运行一个简单的HelloWorld应用程序。首先,我们需要安装所有必需的应用程序:
sudo dnf install gcc-c++ make -y
现在我们将创建应用程序目录:
sudo mkdir /helloworld && cd /helloworld
sudo chmod 777 /helloworld
创建简单的应用程序:
$ vim Helloworld.js
const http = require('http');
const hostname = '0.0.0.0';
const port = 8080;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World! Node.JS 20 LTS is working Perfectly!');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
现在保存文件并允许端口通过防火墙:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
要运行应用程序,请使用:
node Helloworld.js
如果一切顺利,您应该会看到以下输出:
Server running at http://0.0.0.0:8080/
然后,您可以使用URL通过网络浏览器访问该应用程序,地址格式为http://IP_Address:8080,如下图所示:
要停止实例,请使用CTRL+C快捷键。
4、将PM2用于Node.JS应用程序
Node.JS应用程序有时很难管理,PM2可以让Node.JS的应用程序在后台运行,并在启动时自动启用。
首先,使用以下命令进行安装:
sudo npm install -g pm2
为了能够管理应用程序,我们需要创建一个生态系统文件:
vim /helloworld/ecosystem.config.js
在文件中,我们需要定义我们的应用程序名称和路径:
module.exports = {
apps : [{
name : "Helloworld",
script : "./Helloworld.js"
}]
}
使用以下命令启动应用程序:
pm2 start ecosystem.config.js
该应用程序现在将在后台运行,可以在此处看到下图:
要在系统重新启动后启用应用程序的自动启动,请使用:
$ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u rocky8 --hp /home/rocky8
运行提供的命令:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u rocky8 --hp /home/rocky8
保存更改:
pm2 save
我们还需要配置SELinux上下文,首先切换到App目录:
cd /helloworld
安装所需的SELinux工具:
sudo dnf install policycoreutils policycoreutils-python-utils setools setroubleshoot setroubleshoot-server
切换到根用户并将SELinux设置为允许模式:
sudo su
setenforce 0
为应用程序设置以下SELinux策略模块:
setsebool -P domain_can_mmap_files 1
现在将SELinux切换回强制模式:
setenforce 1
现在,您的应用程序将能够在系统启动时自动启动。
您可以使用以下命令管理应用程序:
1]、启动所有应用程序
pm2 start ecosystem.config.js
2]、全部停止
pm2 stop ecosystem.config.js
3]、全部重新启动
pm2 restart ecosystem.config.js
4]、全部重新加载
pm2 reload ecosystem.config.js
5]、全部删除
pm2 delete ecosystem.config.js
6]、删除初始化脚本
pm2 unstartup systemd
到这里,将PM2用于Node.JS应用程序的操作就全部完成了。