centos搭建 Node.js 开发环境

server/2025/3/5 10:32:29/

Node.js ,通常简称为Node,是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Chrome V8引擎,具备速度快、性能强等特点,可用于搭建各类网络应用,及作为小程序后端服务环境。npmnpx 都是和 Node.js 相关的命令行工具,它们在 JavaScript 开发中扮演着重要的角色。

npm:1、允许开发者在项目中安装、管理和共享JavaScript包和模块;2、可以自动处理项目依赖,确保所有必要的包都被安装,并且版本兼容;3、npm能够管理包的版本,支持语义版本控制,使得依赖管理更加灵活和可靠;4、允许在package.json文件中定义脚本,可以通过npm命令运行这些脚本;5、开发者可以通过npm发布自己的包,供其他开发者使用。

npx:1、一次性命令执行,允许开发者直接运行Node.js包而不需要先安装它们;2、可以在不全局安装包的情况下执行命令;3、npx还可以用来执行本地安装的命令行工具,而不需要在package.json中定义脚本来调用它们。4、可以轻松地在不同的Node.js版本之间切换。

centos:CentOS Linux release 7.9.2009 (Core),最小化安装系统。

python:Python-3.10.1


centos7yumnode_16">1、centos7,yum源安装node

yum install -y epel-release   # 安装EPEL仓库
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -   # 针对Node.js16的
yum install -y nodejs
yum install -y nodejs-16.14.2# 验证安装:
node -v
npm -v
npx -v

centos7_NVM_29">2、centos7使用 NVM安装

NVM 允许你在同一台机器上安装和管理多个 Node.js 版本。

查看nvm版本:https://github.com/nvm-sh/nvm

# 安装 NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
command -v nvm    # 验证NVM是否安装成功
# 使用NVM安装Node.js:
nvm install node  # 安装最新版
nvm install 16.14.2  # 安装指定版
# 使用 NVM 切换到安装的 Node.js 版本
nvm use node
nvm use node 16.14.2
# 验证安装:
node -v
npm -v
npx -v

安装受网络影响比较大。

在这里插入图片描述

centos7node_55">3、centos7源代码安装node

node安装版本:node-v22.12.0.tar.gz

centos:CentOS Linux release 7.9.2009 (Core),最小化安装系统。

# 安装依赖:
yum  -y groupinstall 'Development Tools'
yum install -y gcc-c++ make openssl-devel
# node版本过高,要求python最低版本是3.8
#下载源包:https://www.python.org/ftp/python,yum安装提示没有,要不网络不行。
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
tar -xvf Python-3.10.1.tar.xz
cd Python-3.10.1
./configure --enable-optimizations
make -j 8
make altinstall  #使用altinstall而不是install可以防止覆盖默认的系统python二进制文件
python安装到了/usr/local/bin/python3.10

下载源代码:https://nodejs.org/zh-cn/download/prebuilt-binaries

tar -xvf node-v22.12.0.tar.gz
cd node-v22.12.0
mkdir /usr/local/nodejs
# bin执行目录,lib库目录,include头文件目录,share共享数据目录
export PYTHON=/usr/local/bin/python3.10
./configure
make -j 10
make install# 若安装失败了,可以使用make clean,再重新配置编译和安装。

总的来说,安装还是挺麻烦的,遇到了好多好多问题,有时一个问题多次出现,要想源码安装最新的node,最好换更高版本的linux

**遇到报错:**C++ compiler (CXX=g++, 4.8.5) too old, need g++ 10.1.0 or clang++ 8.0.0

解决问题:升级C++编译器

#下载gcc:https://ftp.gnu.org/gnu/gcc/
tar -xvf gcc-11.2.0.tar.gz
cd gcc-11.2.0
# 更换下载源:
vi /root/gcc-11.2.0/contrib/download_prerequisites
http://gcc.gnu.org/pub/gcc/infrastructure/ 更换为:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/
# 下载依赖及配置文件:yum -y install bzip2
./contrib/download_prerequisites
# 配置gcc
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make -j 4   # 执行时间还是挺久的,需要50分钟左右。
# 卸载旧版本:
yum -y remove gcc g++
# 安装:
make install
export PATH=/usr/local/bin:$PATH
gcc -v
# 配置新版本全局可用:
ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++
# 更新动态库:
#查看当前的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
#查看更新后的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# 安装后的动态库会位于/usr/local/lib64目录下,
#其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX

在这里插入图片描述

又遇到问题:

/tmp/ccumRyCj.s:67543: 错误:no such instruction: `vpcompressw %zmm1,%zmm7{%k2}{z}’

解决问题:更新binutils

# 下载最新的binutils源代码:https://ftp.gnu.org/gnu/binutils/
# 解压下载的文件
tar -xvf binutils-2.43.tar.xz
cd binutils-2.43
./configure --prefix=/usr/local
make
make install
# 更新动态链接器缓存
sudo ldconfig
as --version

**又又遇到问题:**make[1]: cc:命令未找到

export PATH=$PATH:/usr/local/bin

ln -s /usr/local/bin/gcc /usr/local/bin/cc

ln -s /usr/local/bin/gcc /usr/bin/cc

又又又有遇到问题了:/root/node-v22.12.0/out/Release/icupkg: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by /root/node-v22.12.0/out/Release/icupkg)

export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++

export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

又又又又有遇到问题了:/deps/cares/src/lib/util/ares_rand.c:37:12: 致命错误:sys/random.h:没有那个文件或目录 37 | # include <sys/random.h

wget https://github.com/c-ares/c-ares/releases/download/v1.34.3/c-ares-1.34.3.tar.gz
tar -xvf c-ares-1.34.3.tar.gz 
cd c-ares-1.34.3
./configure 
make -j 4
make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH 
pkg-config --exists --print-errors libcares   # 没有错误信息输出,那么pkg-config能够找到c-ares

又又又又又有遇到问题了:/deps/cares/src/lib/util/ares_rand.c:37:12: 致命错误:sys/random.h:没有那个文件或目录 37 | # include <sys/random.h

vi /root/node-v22.12.0/deps/cares/src/lib/util/ares_rand.c

//# include <sys/random.h> 用//注释掉

又又又又又又有遇到问题了:make[1]: *** [/root/node-v22.12.0/out/Release/obj/gen/icudt76l.dat] 错误 1

yum install libicu-devel

上面的源码安装时间长,问题多。不好搞。

centos8node_185">4、centos8预构建二进制文件安装node

node安装版本:node-v16.20.2-linux-x64.tar.xz

centos8:CentOS Linux release 8.5.2111(最小化安装)

yum  -y groupinstall 'Development Tools'
# 使用wget下载最新的Node.js版本(请替换为实际的版本号)
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz
tar -xJvf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 /usr/local/node
echo 'export PATH=/usr/local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc# 验证安装
node -v
npm -v

在这里插入图片描述

centos8node_206">5、centos8源代码安装node

node安装版本:node-v16.20.2.tar.gz

centos8:CentOS Linux release 8.5.2111(最小化安装)

# 安装依赖:
yum  -y groupinstall 'Development Tools'
yum install -y gcc-c++ make openssl-devel
yum install -y python39

下载源代码:https://nodejs.org/zh-cn/download/prebuilt-binaries

mkdir /usr/local/nodejs
tar -xvf node-v16.20.2.tar.gz
cd node-v16.20.2
./configure --prefix=/usr/local/nodejs
make -j 10
make installvi ~/.bashrc
export PATH=/usr/local/nodejs/bin:$PATH
source ~/.bashrc# 验证安装
node -v
npm -v

在这里插入图片描述


http://www.ppmy.cn/server/172577.html

相关文章

C语言文件操作学习笔记:从基础到实践

在C语言的知识体系中&#xff0c;文件操作是极为关键的一环&#xff0c;它赋予了程序存储和读取外部数据的能力&#xff0c;对于开发各类实用程序至关重要。近期&#xff0c;借助课程的学习&#xff0c;我对C语言文件操作进行了系统且深入的学习&#xff0c;下面将我的学习心得…

DeepSeek发布开源第五弹!AI 时代的极速存储引擎【3FS】

3FS&#xff08;Fire-Flyer File System&#xff09;是 DeepSeek 开源的一款高性能分布式文件系统&#xff0c;专为 AI 训练、大规模数据处理和推理优化设计。它采用 链式复制 (Chain Replication) CRAQ 技术&#xff0c;实现了强一致性和高吞吐的分布式存储架构&#xff0c;同…

复试准备日常

实验室面前投了 aiot 这周四 532图像处理实验室&#xff08;我的项目大多也是图像处理的&#xff09;&#xff08;预计下周末&#xff09;提前到3.4号下午6点 我不在第一批里面 软专不知道要几个 研二好像要去绍兴&#xff1f;&#xff1f;&#xff1f; 感知计算面试预计明后天…

栈与队列_逆波兰表达式求值

栈与队列_逆波兰表达式求值 一、leetcode-150二、题解1.引库2.代码 一、leetcode-150 逆波兰表达式求值 逆波兰式&#xff08;Reverse Polish Notation&#xff0c;RPN&#xff0c;或逆波兰记法&#xff09;&#xff0c;也叫后缀表达式&#xff08;将运算符写在操作数之后&am…

在virtualbox安装ubuntu并配置ssh连接

virtualbox ubuntu ssh 下载virtualbox 下载镜像&#xff1a;https://releases.ubuntu.com/24.04/ubuntu-24.04.2-live-server-amd64.iso 新建安装虚拟机 端口转发 ssh配置 连接配置 # cat .ssh/config …

netframework 读取appsettings.json

AppSettingsHelper&#xff1a; using Newtonsoft.Json.Linq; using System; using System.IO;public class AppSettingsHelper {private static JObject _appSettings;static AppSettingsHelper(){try{// 获取 appsettings.json 文件的路径var filePath Path.Combine(AppDom…

CentOS7 安装Redis 6.2.6 详细教程

本文主要介绍CentOS7系统下安装Redis6.2.6的详细教程。 1.安装依赖 redis是基于C语言开发&#xff0c;因此想要在服务器上运行redis需要验证是否安装了gcc&#xff0c;没有安装gcc则需先安装 查看是否安装gcc gcc -v如果没有安装gcc&#xff0c;则通过如下命令安装 yum in…

STM32MP1xx的启动流程

https://wiki.st.com/stm32mpu/wiki/Boot_chain_overview 根据提供的知识库内容&#xff0c;以下是STM32 MPU启动链的详细解析&#xff1a; 1. 通用启动流程 STM32 MPU启动分为多阶段&#xff0c;逐步初始化外设和内存&#xff0c;并建立信任链&#xff1a; 1.1 ROM代码&…